Running a Tournament off the cuff using an RNG

I ran a tournament yesterday, somewhat at the spur of the moment in response to a scheduled event being rescheduled. I ran it with 2 different colored pens, some paper, and a smartphone (RNG app). I wanted to share how I did it here, for a few reasons. I wanted to brainstorm an issue with byes and pairing so that maybe someone could help me find a better solution and I wanted to help anyone who wanted to do the same.

First the parameters:

Three strike tourney, head to head, SWISS pairing, byes (if necessary) to those with the most strikes who haven’t had a bye.

Pre tourney - assign each game a number. Assign each player a number.

Round 1. Generate pairings by using RNG (set to choose every number once without repeating numbers) two a time. First player chosen will go first, second will go second. If you have an odd number of participants, assign the final number chosen the bye. Put a (B) next to a person that receives a bye and carry that forward. We did not have a bye as we had 18 players to start. Once all the pairings are set change the parameters and move to arena selection. Assign each pairing a machine. The first round doesn’t need to utilize the different pens.

Post round 1 - each group should have one strike between the two players. Make 2 columns - 0 strike and 1 strike. Assign each player a number within each column - in our case we had 9 in each column at this point - so each was 1-9.

Pre Round 2 and beyond. BLUE INK. Use RNG to generate the 0-strike groups first. If you have an odd number of people with 0 strikes, the final player will play the first player with 1 strike. Pair the 1-strikes, again if there is an odd number the remainder a)gets a bye or b)plays people with 2-strikes. Pair the 2-strikes - remainder assigned bye. Carry the (B) notation forward. Place appropriate strikes next to each player in BLUE PEN. Then assign the arena.

Post round - BLACK PEN When players report scores - record the new strikes in BLACK PEN. When all groups have one player with a BLACK PEN strike - the round is over. Lather, rinse, repeat.

How I dealt with players that received byes. Unfortunately - I couldn’t think of a way to include bye players in the pool of similarly situated players (people with the same amount of strikes). They became a separate category and were paired as if they had .5 less strikes in a separate RNG group. In other words - when I had a player with 2 strikes that had just received a bye, they ended up playing the carryover 1 strike player, because they were the only player in a group that sat between players with 1 strike and players with 2 strikes. This was the way I ensured that we didn’t have people get multiple byes before everyone had one. I wish I could have thought of a better way to work around this issue, but I couldn’t. I am looking for some feedback on this issue.

Time constraints caused us to suspend play with three players remaining. Each player was assigned one share per unused strike. Prize pool was distributed according to share.

Let me know what you all think - help me with my BYE issue - I would like to be able to pair players in a more inclusive swiss format than what I did.

It sounds like you were trying to pair people by win percentage. Just group people based on number of strikes. Treat someone with one strike and one bye the same as the players with one strike and no byes. Both are two losses away from elimination. The added granularity of factoring in whether someone has received a bye is unnecessary.

Do the bye draw round before any pairing. Skip over anyone who’s already received a bye.

Now you know why Match Play Events doesn’t pair people based on strikes but based on number of games won (receiving a bye counts as a game won).

I strongly agree that it’s much simpler to award the bye first, before starting to pair players.

So just do a drawing among those eligible for the bye before anything else - yes that’s it. Thank you. I wasn’t doing win percentage I was trying to guarantee no one got 2 byes before someone had one.

It’ll be a three-step process for you.

  1. Sort people by the amount of byes received. Grab all players in the group with the fewest byes
  2. Sort that group by the amount of strikes. Grab all players in the group with the most strikes
  3. Pick a random player from that group

You’re getting into territory where using dedicated software will save you a lot of time. :wink:


I noticed if there was time for one more round, a special unicorn case would have shown up.

The situation was as follows:

Player A - 1 strike
Players B and C - 2 strikes, 1 Bye
Players D and E - 2 strikes, no bye

If the situation were to be drawn

Player A wins vs. Player (D/E)

Player (B/C) wins vs. Player (B/C)

Player (D/E) gets bye

The next round would have all of the 2 strike players with preceding byes and Player A with none. By previous logic, one of the 2 strike players would receive a second bye.

The algorithm from @haugstrup would remedy this issue.

So that was the situation leading into the final round played. But it was handled like this:

Player A played B or C.
B or C not chosen to play A played D or E.
D or E not chosen received the bye. It would have been best had I selected the bye first. Then Player A would play B/C/D/E. Which is how I wanted it, but couldn’t figure out at the time.

Plus - in certain situations like this one, the order wasn’t random. Not at this point anyhow since I always moved left to right - player A ends up player 1. I could have made people flip for it - maybe I should have, but it only became an issue towards the end.

On second thought - I don’t hate it, because it always gave positional advantage in a mismatched strike group to the person with more strikes.

Agreed. Your head is less on the chopping block, you get to go first. That was handled quite well.