The pairing algorithms is some of the most fun work in Match Play (most of the work is putting buttons on screens which is more tedious).
MP will do 1000 random "sets" and pick the "best" one. 100 random ones is far too little and there are diminishing returns when increasing it much beyond 1000 (and performance starts to suffer).
There are some quirks and some limitations that makes these repeats happen:
It's all random so the algorithm can get backed into a corner. I'd like to use a genetic optimization algorithm, but haven't had the time to explore. It should guarantee better results.
The optimizer assigns a "cost" to each "set", but cost is linear. I.e. it increases the same amount to assign someone Stars for the fourth time as it does to assign Jackbot to someone for the second time. This would be a simple change that should reduce outliers (adding that one to my list!).
Unlike Pinburgh MatchPlay will go through groups in random order when assigning arenas. This is because unlike Pinburgh MP can't be sure that there are enough machines for all groups and I don't want MP to be opinionated about which groups not to assign arenas to.
MP will also not repeat an arena for any "game 1" matches. E.g. if you have three games per round, Stars can be assigned only three times (once for each slot).* The random order then makes it harder to get perfect assignments.
The mathematical models I've seen have limitations that make them unsuitable for pinball tournaments. They all assume that no players leave or arrive late and that no machines are replaced during the tournament. If only this was true for all pinball tournaments!
That's why I'm putting my faith in optimization algorithms. The 1000 iteration random optimizer is "pretty good", but I'd love to replace it with an algorithm that can obtain better pairings using the same amount of iterations.
* MP also supports machine banks where the procedure is different. Here a bank of machines is treated as a unit and the banks are assigned rather than individual machines.