Matchmaking is the existing automated process in League of Legends that matches a player to and against other players in games.
The system estimates how good a player is based on whom the player beats and to whom the player loses. It tries to make matches where it thinks a player has a 50/50 chance of winning. It knows pre-made teams are an advantage, so it gives pre-made teams tougher opponents than if each player had queued alone (or other premades of a similar total skill level). Riot Games uses some formulas in an attempt to make the pre-made teams vs solo players matching fair.
The basic concept is that the system over time understands how strong of a player you are, and attempts to place you in games with people of the same strength. As much as possible, the game tries to create matches that are a coin flip between players who are about the same skill.
The basic priorities of the system are, in order of importance:
- Protecting new players from experienced ones.
- Fairness & creating competitive matches.
- Finding a match at all. The longer you wait, the more important this priority is.
There are three steps on that the matchmaking system follows:
1: Determine the player's strength
- If solo queued, it’s just based on personal rating (i.e. ranked team rating for ranked team, normal games rating for normal games).
- If it's a pre-made team, the rating is the average of the team members, along with an increase based on the type of pre-made to make sure that the team gets tougher opponents, because being a pre-made is an advantage.
2: Determine eligible opponents
- Initially, the system will only match you with very similar players based on the rating you have been assigned. Eventually, it gives you less ideal matches because it doesn't want you to be in line forever.
- New players get special protection to increase the likelihood of being matched with and against other new players.
3: Find a match
- Eventually, the system finds a match that is deemed "fair" for everyone involved, and puts the players into a game.
- The system then tries to balance the team to make two teams with 50% odds of winning. In our mid-beta pool, which has very few players relative to what is in release, the majority of games created by the system had teams predicted to be extremely fair (no team with odds greater than 55% to win). We expect that in release, that 98%+ of the time we will see games where no team is thought by the system to have a higher than 55% chance to win. This is because adding a small amount of players to the system dramatically improves the quality of matches made, and we expect a lot more people to be playing at release than in closed beta...
The Matchmaking System works along with a modified version of the Elo system. The basic gist of the Elo system is that it uses math to compare two player ratings to guess the game result – like, "Player A will win vs Player B 75% of the time". From there, the game is played. If a player wins, the player gain points. On the contrary, if the player loses, he loses points. If the win was "unexpected" (i.e. the system expects you to lose), the points you gain are larger. 
The system was modified for team use, and basically, the concept is that a player gets a team Elo based on whoever is on the team, and if the player wins, it is assumed that everyone on the team was “better” than the guess, and gains points. There are some problems with this, but it generally works out, especially if people use pre-mades a little bit. The System do a few little things to nudge the Elo rating in the right direction when you start out so that people get where they need to get faster.
- Various proprietary methods to identify players that are significantly more skilled than a new player, and boot their rating up a bunch behind the scenes when we notice this.
- Gaining levels boosts a player's Elo rating a lot. This further helps separate level 30 summoners from low level summoners.
Additionally, newer players gain and lose points more rapidly so that they are able to play in their skill level faster. Over time, this means that good players end up high rated because they do better than the system expects, until the system is guessing correctly how often they will win.
Zileas, the VP of game design, has made a detailed post on the matchmaking engine