Matchmaking algorithm needs to take best/worst/lane into account.
So, obviously MMR is sound in theory but it often creates matches that are heavily skewed in favor of one team. Most notably, lane interactions within MMR are totally messed up. Riot needs to have the matchmaking algorithm attempt to avoid huge gaps between the best player and worst player, especially when those two are in the same lane.
My most recent Silver 1 promo series game unfolded as such:
My Team: Silver 1 - Silver 1 - Gold 3 - Gold 4 - Plat 5 Enemy Team: Gold 5 - Gold 3 - Gold 2 - Plat 4 - Plat 3
MMR is total garbage if two silver 1 players are playing against a plat 3 and plat 4. But aside from that, as one of the silver 1 players I had to lane against their plat 3. Guess who got destroyed? This guy. As it should be though, right? So how is that in any way balanced? The silver 1 is losing that lane 9 out of 10 times. Just because the MMR numbers add up to around the same (which seems impossible), how is it even remotely balanced to have a silver 1 playing against a plat 3 in lane? The disparity that this creates within the game, once the numbers are calculated, creates a completely unbalanced situation. There is also no consistent in game solution to this unbalanced lane, as the information about such severe disparity in skill is not obviously presented to your teammates. Therefore, the disparity only becomes apparent after its too late and the extra help that should have been shifted toward the weaker lane is rarely ever given.
The algorithm should not allow for such drastic swings between the best and worst players in a game. It makes no sense to save 30 seconds on queue times by ruining 30 minute games.