Riot wants your game to be stable. When you join up to play a game, you enter into a peer-to-peer web structure with the other players of your game in order to maximize reaction times and stability.** In order to ensure that everyone has mostly equal footing, the matchmaker has to find 10 players who:**
- Are geographically close together
- Have similar ping rates
- Have similar ELO
- Can be ordered to fill each of 5 roles no more or less than twice
In high traffic regions in the bronze-plat ELOs, this is not much of a problem. A while back Riot released some info on the autofill system:
https://am-a.akamaihd.net/image?f=https://news-a.akamaihd.net/public/images/articles/2016/june/DQU/graph-autofilling.jpg?v=1
At that time, unless you're in the upper tiers of Diamond, you wouldn't run into autofill much. There is some small percentage of bronze players who have to be autofilled, simply because those players are the lowest of trolls and there aren't many legitimate players near that ELO (lose every game for 100 games in a row). Riot has most likely changed the autofill algorithms a bit since then, as they have stated the often do behind the scenes. They want to get a good balance of speed while allowing most of the players to get their preferred roles. As they already had a major screw up once by allowing larger ELO ranges to play against each other, I suspect they are focusing most of their attention on Autofill rates to combat queue times.
Source: http://na.leagueoflegends.com/en/news/game-updates/features/rethinking-ranked-fives-and-tuning-dynamic-queue
P.S. Your statement of not receiving your role "80% of the time" is completely false. You gain autofill protection after autofilling OR playing a support game. If you really don't want to get autofilled, choose to play support for every 5th game. It's not that bad.
Sincerely,
-A Soraka main