Team A:
1x Level 30
4x Level 1
Average = Level 6.8
Team B:
2x Level 6
3x Level 7
Average = level 6.6
so you're saying that these two teams are even because they are both the same average? Pro logic bro.
Even when you don't look at average level and instead look at average ELO, the result is the same. You can have 1 super pro with 4 complete noobs on one team, be the same average as 5 complete noobs on the other team.
Team A:
1x 2000 ELO
4x 1200 ELO
average ELO = 1360
Team B:
5x 1360 ELO
average ELO = 1360
Team A will always win because the one 2000 ELO player will absolutely stomp everybody. And there is little to no definitive difference between a 1200 player and a 1360 player.
You want MEDIAN not average. Matchmaking should first find a median ELO. Let's say that matchmaking chooses 1500 as a median based on everybody that is queueing up and who is available to be matched.
1500 will be the median ELO meaning that on both teams, the 3rd player will be 1500. The 1st and 2nd player will be above 1500, but as close to 1500 as possible. The 4th and 5th player will be below 1500, but as close to 1500 as possible.
Example:
Team A:
p1. 1603 ELO
p2. 1563 ELO
p3. 1504 ELO
p4. 1476 ELO
p5. 1411 ELO
Team B:
p1: 1613 ELO
p2: 1542 ELO
p3. 1498 ELO
p4. 1483 ELO
p5. 1469 ELO
Both teams have a median ELO of 1500, and the ELO's above and below the median are as close to the median as possible. This is an even match.
How will matchmaking create these even teams? First there should be ELO brackets (e.g. 0-500, 500-900, 900-1100, 1100-1300, 1300-1500, etc)
Let's say that currently there are 50 people queued up for the 1300-1500 bracket. The matchmaking system will search for the median ELO within this pool of 50 players. It will then use this median number to be set as the median for 5 different teams (the median being the 3rd player in each team), and then disperse the other players amongst them based on whether their ELO is above or below the median.