For the entire 15-year stretch I’ve played Magic, high rolling has been the default way to randomly determine who gets to play first. But high rolling just isn’t a good protocol. These are just a few of the problems with it:

- It’s not deterministic. You have ties, forcing you to roll again. Even using multiple dice, the chances of tying are nontrivial. With four dice, for example, there’s an 8.09% chance of a tie.
- Dice need to be rolled at least two times, asynchronously. High roll just takes a long time.
- Both players need to observe and track the first roll. This might sound trivial, but there have been numerous times late into Magic tournaments where I’ve glanced at my roll, started thinking about something else, and couldn’t remember what I rolled after my opponent picks up the dice.
- Most importantly, there’s room for cheating. We’ve all had opponents who pick up the dice after we roll and just drop them, barely rolling. I’m not saying that everyone who does this is cheating, or even that it’s possible to cheat this way, but I’d rather not have to suspect that my opponents are cheating when they win after rolling in a weird way.

Because of all the problems with high rolling, I’ve gravitated toward asking my opponents to odd-even first, and only high rolling when they object. But I understand that on the surface, odd-even looks even more susceptible to cheating. Only one player gets to roll the dice, and I’ve had players agree to odd-even only if granted weird stipulations, like I throw the dice up and let them call the outcome midair.

# Symmetric Odd-Even

Mildly sedated after an endoscopy, I was thinking about a probability problem (for what m and n is the sum of n rolls of m-sided dice modulo n uniformly random?) and it occurred to me that there’s a simple way to get all the advantages of odd-even (determinism, efficiency, no information tracking) while eliminating the opportunity for the player rolling the dice to cheat. Just let both players roll dice.

- One player chooses whether they want odd or even. It doesn’t matter who.
- Both players roll however many dice they want.
- Take the sum of all rolls.
- Odd player wins if the sum is odd, even player wins if the sum is even.

This idea is so simple that I assume it’s not original, but it has so many advantages that I also understand why it isn’t the default protocol.

We can observe that so long as a single die that either player rolls is fair, then the parity of the sum is fair. To see that, consider the outcome of the fair die separately from the outcomes of all the other dice. No matter whether the other dice are fair or loaded, or if their roll was manipulated somehow, the sum of their faces will either be odd or even. If the sum is odd, then the fair die has a 50% chance of switching the parity when the roll is odd, and a 50% chance of maintaining the parity when the roll is even. When the sum is even, the situation is the same. So regardless of what the sum of the other die is, the overall sum has a 50% chance of being even and 50% chance of being odd.

That’s why this protocol is resistant to cheating. So long as you know that your die is fair, then you can be confident that the whole protocol is fair. And even if both players can roll odd or even at will, the protocol reduces to a leveling game where the competitive equilibrium is for both players to choose the parity of their roll at random. Because the players roll simultaneously, it’s impossible for either player to know the other’s choice before it’s too late.

This process also guards against manufacturing defects when both participants cooperate. For example, if you think that there’s a 20% chance that either player’s die is compromisedâ€”recognizing that if a single die is compromised, it’s likely that the box it came from likely has the same problemâ€”then the overall process still has a 96% chance of being fair.

# Pseudo-RPS

Rock-paper-scissors is actually a perfectly reasonable way to randomly determine who goes first. It’s another game where the competitive equilibrium is to play at random, so who wins or loses is random when both participants play optimally. In terms of ties, time, and complexity though, it’s even worse than high rolling.

Thinking about these problems reminded me of an interesting way one of my opponents offered to decide play-draw a while back.

He had the usual Rock Lobster, Paper Tiger, and Scissors Lizard set, but instead of offering to play RPS, he just shuffled the cards, burned one, and let me choose from the two remaining cards. I would get whichever card I chose, he would get the last card, and whoever won RPS would get to play.

Ryan’s method has pretty much all the advantages of symmetric odd-even: it’s deterministic since each card is unique, there’s no tracking, and because I had the final say on who got which card, there’s no way he could have cheated. Not only that, it’s even faster, and there will never be any of the awkwardness you have with dice that fall into the crack between playmats or off the table.

The primary disadvantage of Ryan’s method is that I can still cheat. If Ryan flashes me the order of the cards or if I can track their movement through his shuffle, then I know which card he burned and which card I need to take to win. After playing against Ryan a couple of times, maybe I notice that the backs of the RPS cards are marked and can choose the winner that way.

And of course, there’s still the overhead of having the RPS cards in your deck box.

Note that although it’s less aesthetically pleasing, all this works exactly the same if you only ever use two of the cards and skip the burn phase.

# Conclusion

Obviously, the easiest and best solution for this problem is to have the tournament software decide who plays and draws in each match, and maybe also take steps to ensure that each player gets to play and draw an equal number of times throughout the tournament. But in the meantime, I hope these methods become commonplace. They’re not perfect, but they’re significantly better than the status quo.

# Postscript

My friend Jake Koenig and his officemates Henry Tsang and Siddhesh Supekar actually solved the problem that inspired all this: the sum of n rolls of m-sided dice modulo n uniformly random if and only if n divides m (assuming n, m are greater than 1).

You can find their proof here.