Partial Round Robin with balanced opponent difficulty
I'd like to run a balanced partial round robin tournament. The idea is to avoid some of the delays that occur due to one or two players taking much longer to play than other players, while ensuring that each player has a schedule difficulty roughly equal to that of other players.
The tournament director chooses how many games to be played by each player. This number could be smaller than the number of players. For example, the tournament may have 30 players, but each player may play only 9 opponents.
Ideally, each player should play a set of opponents roughly equal in skill (as measured by Glicko or IFPA) to the sets of opponents faced by all other players.
For example, if each player played 3 opponents, then divide the field equally into low, medium, and high Glicko scores. Each player should play one player from each group (to the extent possible). Also, the sum of Glicko scores for an opponent set should be roughly to the sum for other opponent sets. This can be extended to larger opponent group sizes.
The schedule can be generated entirely in advance; however, it should not be shown to the players until it is time for that matchup to be played. The software should start a matchup as soon as two players are idle and are on the schedule to play each other. If multiple matchups are ready to be assigned, then first start the matches having players who have played the fewest matches so far.

john.garnett commented
Note, this is similar to Flipper Frenzy, but avoids the possibility of two players playing each other more than once and ensures that everyone plays an equal number of games. It also avoids allowing one player to have an opponent set that are vastly different in skilllevel from those opponents faced by another player.