A simple balancing solution
Here's the algorithm in action. They just need to add this balancing after the current matchmaker finds 24 pilots for a match.
Initial player pool of 24 pilots once a match is found using the current matchmaker (randomly generated average match score of each pilot's currently chosen weight class, refresh to see new example):
Array
(
[0] => 217
[1] => 672
[2] => 364
[3] => 720
[4] => 132
[5] => 288
[6] => 811
[7] => 650
[8] => 301
[9] => 128
[10] => 545
[11] => 144
[12] => 681
[13] => 380
[14] => 173
[15] => 594
[16] => 385
[17] => 768
[18] => 302
[19] => 588
[20] => 107
[21] => 898
[22] => 460
[23] => 307
)
Worst possible team: 2843 total, 237 average
Best possible team: 7772 total, 648 average
Worst possible skill difference: 4929 total, 411 average (This is how some matches are now)
Balanced skill difference: 207 total, 17 average (Why do we not do this?)
Balanced team one: 5411 total, 451 average
Array
(
[0] => 898
[1] => 768
[2] => 681
[3] => 650
[4] => 588
[5] => 460
[6] => 364
[7] => 302
[8] => 288
[9] => 173
[10] => 132
[11] => 107
)
Balanced team two: 5204 total, 434 average
Array
(
[0] => 811
[1] => 720
[2] => 672
[3] => 594
[4] => 545
[5] => 385
[6] => 380
[7] => 307
[8] => 301
[9] => 217
[10] => 144
[11] => 128
)
Would you like to play in the worst case scenario (how it currently is sometimes)? Or would you like to play an actual balanced match from the example above?