Paul and John came to see me right after I had generated the match list, very displeased that their teams were playing 5 out of 9 qual matches against each other. I had no idea why the FMS kept coming up with schedules like that. (We reran several times, thinking it must be an error.)
Then we got HQ on Skype, and were told that was the way it was supposed to be. Our RD (who was also a FIRST BoD member at the time) nearly blew a gasket. Ah, the joys of Week 1. I think HQ got it fixed by the next week, but my memory may be failing me on that after so many years.
Played Week 5 With 1251 Three Time And Against Once
(For real though, the algorithm has not changed for this year and takes several minutes for the scorekeeper computer to process out which of the bajillion random schedules creates the best-fitting one for their algorithm. Sometimes, a bum draw is a bum draw.)
To the best of my knowledge, it last changed beginning of the 2017 season as listed for FRC, but upon checking the page of the author, there was a subsequent revision in July to allow up to 200 teams to fit on a single input list. 
At Central New York 2018, 340 played against 2016 in three separate matches. It was a small regional (35 teams), but there are some teams we didn’t play against at all. Not sure I’ve ever played against a team 3 times in one regional.
Couldn’t several balanced schedules be produced ahead of time with amounts of teams from 1 to n, so you are left with n indexes that you can then assign team numbers to? There’s still the randomness of which schedule you choose and which team gets assigned to which index. As far as I know, this is how CheesyArena does it.
Now THIS is something I’ve called for. Volunteers do not need to see team numbers while the schedule is being generated. Use index numbers and then randomly assign team numbers to the optimal schedule only AFTER it is locked in.
Showing the team numbers during scheduling opens the door for abuse should a volunteer or volunteers responsible for schedule generation wish to manipulate the system in favor of (or against) certain teams.
Many of the posters in this thread are talking about small events (29 teams at Georgian College, 35 at CNY/GSD, 42 at Hatford, etc). This is to be expected at small events. First off, you play more matches at these small events (typically 12), which means more opportunity to play with the same teams. Next, smaller events start hitting areas of concern with regards toround uniformity and match separation. Because there’s fewer teams in attendance, each “round” is shorter. Because each round is shorter, it becomes harder to fully spread out team interactions (pairing uniformity) without hitting concerns regarding match separation.
Seeing this type of schedule at a larger event, such as the 61 teams at Miami Valley, is much more concerning. It shouldn’t be happening at an event with 10 matches per round.
Psssh, only 5 of 9? That’s nothing. Look at 116’s schedule for VCU that year, and then search for team 122. You can also find an interesting trend regarding the middle numbered teams in each match (our opponents in match X became our partners in match X+1).
AFAIK, HQ was unaware of the scheduling changes that year. It was the algorithm vendor who decided it. Maybe HQ was informed in time to pass along the info to events, but they weren’t the ones who made the decision.