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] => 145
[1] => 723
[2] => 565
[3] => 351
[4] => 736
[5] => 616
[6] => 588
[7] => 531
[8] => 128
[9] => 659
[10] => 887
[11] => 124
[12] => 428
[13] => 835
[14] => 377
[15] => 434
[16] => 472
[17] => 439
[18] => 615
[19] => 834
[20] => 687
[21] => 563
[22] => 522
[23] => 737
)
Worst possible team: 4514 total, 376 average
Best possible team: 8482 total, 707 average
Worst possible skill difference: 3968 total, 331 average (This is how some matches are now)
Balanced skill difference: 134 total, 11 average (Why do we not do this?)
Balanced team one: 6431 total, 536 average
Array
(
[0] => 887
[1] => 834
[2] => 736
[3] => 687
[4] => 616
[5] => 588
[6] => 531
[7] => 472
[8] => 434
[9] => 377
[10] => 145
[11] => 124
)
Balanced team two: 6565 total, 547 average
Array
(
[0] => 835
[1] => 737
[2] => 723
[3] => 659
[4] => 615
[5] => 565
[6] => 563
[7] => 522
[8] => 439
[9] => 428
[10] => 351
[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?