I think this is a great question and I’d like to provide some visibility into why things like this seemingly take so long to just do.
It definitely seems from the outside that we’re working with unlimited resources, and in many ways we count ourselves grateful that we have been successful enough to continue to keep the game interesting for so many years; but, with the scale at which we operate League (and all our games really), there comes a whole slew of different prioritization issues that are just the reality of delivering these games to a massive player base. Specifically, size and impact of small problems like “randomizing champ select for premades,” pale in comparison to the size and impact of say everyday problems like “party nodes can’t handle the amount of games thrown at them.”
What you start to see (and what most companies that grow to this size will see) is a shift in how you HAVE to spend money and time, not just where you WANT to spend it.
Obvious, high value, low cost work is all but gone and what you’re left with are questions like “do I spend valuable resources and time doing a nice to have feature that 1% of the player base will notice but won’t impact their ability to play, or do I spend those same resources to ensure that 1% of players that are blocked from playing can get into matches when load is high.”
Now, I don’t think there’s a person at Riot that doesn’t want to fix every problem everywhere that would make the game better, but in reality it sometimes just doesn’t make sense to pick up problems like these as soon as they crop up. If we did, we would end up losing sight of the big picture and long term fun and playability of League because we’re always responding to the small stuff right in front of us.
That said, it is important to balance as much as you can and not neglect the earflicks alongside the Goliath projects. So when we do find an opportunity to make something small better for players, we try to do so as quickly and as well as we can.
For this issue, I actually give huge props to one our team engineers who went out of his way to fix this while working on some other related work in the codebase. It’s small efforts and care for the experience like this that can go a long way in keeping the game enjoyable.
We really do want to tackle everything all the time, and we try to do our best in balancing it all out. I hope this wasn’t too wordy and provides some insight.