The solution to bad teams
Hi, though the title sounds a little blunt this is mostly an expression of what I feel to be the most viable solution to your problem of ending up in bad teams. Before I get to that though there are a few things that need to be cleared up.
League of Legends isn't just for the diehards, the pros or just the really good players; like in all games casual gamers (the everyday kind of people who have more/other interests in their lives and simply play the game for fun and to pass the time, not especially dedicated to do very well, become better or the best and climb ranks and whatever else diehards like to do) make up a large percentage of League of Legends's playerbase. Without them LoL probably wouldn't survive for long due to a lack of revenue.
When you find yourself playing in a 'bad' team it just means that you probably ended up with mostly casual players who are not as good as you are because naturally they're not so dedicated to the game itself; they just play for fun to kill time regardless if they do well or if they lose. Looking further ahead one has to understand that not all players are equal in skill; some are just better than others and some just aren't. Also, just because one player is deemed to have skills and good knowledge of tactics and game strategy it shouldn't be taken for granted that he'll perform well in EVERY game. Even monkeys fall from trees! Sometimes players who are indeed good at the game overall may have some bad luck in the way and make them perform worse than they normally would have, making mistakes on the way and not feeling as concentrated as usual; the possibilities are endless and there's only so much a player can do to influence the outcome of a situation and the game, there are some things which are beyond a player's control/influence.
Don't forget that League of Legends, being a game revolving around teamwork, gives rise to such situations where a good player simply can't influence much if at all. In a team game, your own performance and strength is highly dependent on the performance of your teammates. If you are a good player but all the rest of your team aren't and consequently they don't perform well, chances are you won't perform well either because the enemy team will grow in strength due to your teammates' failures ('feeding') at a greater pace than you and once that happens you're basically dead. This is especially apparent in team fights where the fed or more coordinated enemy team quickly shreds your incompetent teammates and you the 'good' player soon finds yourself powerless to do anything and if you try to do something you'll most likely end up killed because it will be a classic 1 vs 5 scenario. Of course it's not impossible for you to 'carry' the game, get a few team kills (pentakills) and win the game but usually for this to happen you must rely on the enemy team being equally incompetent as that of your own, you must be exceptionally skilled or just lucky all three being far more unlikely than most would admit.
Ending up with bad teams is only natural; there's not much a matchmaking system can do about since it's just a program working on numbers and data. It's difficult to tell a machine who is a truly 'good' player and who is 'bad' and even the numbers and data it works upon can be inaccurate; a truly good player who happened to be unlucky enough to find himself playing with bad teams and get a lose streak will see his MMR drop and the matchmaking system will think based on that that the player has degraded in skill (which in reality he hasn't) and now will match him with other 'weaker' players.
Without further ado here's my weakest bet for a solution to your problem of bad teams. To relieve yourself from incompetent teammates you must play a considerable number of games as a solo player (no group) to get matched with random people online and over time find players you deem to be skilled, add them as your friends and essentially gather a large friends list of good players to choose from to make a group and play the game. This is the only way you can make sure all your team is composed of good players whom you can rely upon not just to help you win but also to provide an amazing gaming experience. Of course this isn't some sort of 'final solution' to your problem because it's not possible to group up with a full team all the time; when you are online others might not be and when they are they might already be playing in a game solo which means you'll have to wait for them to finish to invite them. Because of this, the only way to ensure that nearly every game you play is composed of good players is to wait until you luck out and be able to form a group and skip playing solo which will result in you cutting your time spent on LoL considerably and if you don't at least occasionally play solo you might degrade your skills due to lack of practice.
It is understandable why you would feel annoyed when you're confident that you're a good player but lose a lot and don't perform well because your teammates failed to live up to expectations and deliver but you have to look further ahead; this is the natural way of things and nothing's really gonna change that. You can't win them all. Don't forget that everyone makes mistakes and the truly best in the trade stand out in the difficult situations; a truly skilled player will know and at least try to find a way round the problem when the rest of the team can't. Besides, as an old saying goes, you don't learn a lot from victory but you learn much from defeat.
So you might say the solution to bad teams is the one I pointed out earlier (add a lot of good players as friends and invite them to form a group) but if we look further ahead and are looking for a final solution to the problem then our best bet would be as such; to solve your problem of bad teams simply don't let it affect you :)