I think this is a noble goal, but the devil will be in the implementation details. Done poorly, we'll be even worse off then we are today. People old enough will remember the 2007 "Algorithm of Doom", which selected teams from three buckets like you're proposing (although those buckets were populated by team age).
The biggest issue will be correctly populating the buckets -
this thread discusses many of the same ideas. You'll also have to account for buckets that aren't of equal size (by whatever metric you choose), especially when the number of teams attending is not a multiple of 3. Would this cause more surrogates to be used, or something else?
Are you proposing using previous year's data, because that runs into trouble with fast team turnover and the potential for powerhouse teams to have down years, only to be paired with other powerhouses more often the following year. Plus, what do you do with rookies? They have no data to rely on yet, and there are always exceptional rookie teams, which would cause the same kind of inconsistency.
If you use current season data, what would you do for early events? You wouldn't have any data available for the early weeks, so you'd have to resort to a randomness-based algorithm again. This approach would only work for District Champs/World Champs, where all teams are already guaranteed to have played already.
Plus, Ed Law made a great point in the other thread I linked:
So overall, I'll concede that random selection isn't perfect, but I'm not totally convinced a team strength based algorithm is better.