Free tool
Random order generator for a pool tournament
Paste the names, one per line, and draw a running order. Fair shuffle, in your browser, nothing sent anywhere.
Why the draw matters
Position in a rotation is a real advantage. Shooting first means breaking into a tight rack, which is measurably harder than shooting fourth into an open one. Over a season, a draw that is not random shows up in the standings.
Why not just sort randomly?
Because the obvious trick does not work. Sorting a list with a random
comparator — sort(() => Math.random() - 0.5) — does not
produce a uniform shuffle; some positions come up more often than
others, and how badly depends on the sorting algorithm in your browser.
This uses a Fisher-Yates shuffle with randomness from the browser's cryptographic generator, which gives every possible order exactly the same chance.
How much does going first actually cost you?
Enough to notice over a season. The first player of a rack breaks into a tight triangle, where the balls are packed and the pocket angles are poor. The player after them inherits a spread table with several easy pots on it. In a format where one missed shot costs a life, that is a real difference and it repeats every single rack.
Which is why the fix is not to argue about it but to randomise it properly, in public, and let the rotation move the disadvantage around the table as racks come and go.
Do it in front of everyone
Whatever you use, draw it where people can see. "Why am I first again?" comes up at every night where the order was decided quietly, and a visible draw answers it before it is asked.
Or let the app draw it
The order scrambles on screen in front of the room, from a stored seed, so it can be reproduced if anyone asks. Free.