Marble Race Roulette

Enter a list of names and watch marbles race down the board to pick a random winner. A playful alternative to a spinning wheel for giveaways, draws and settling who goes first.

How to use

  1. Type in one participant name per line.
  2. Pick an obstacle map and start the race.
  3. Watch the marbles roll down the track — whoever crosses the finish line first wins.

Every race is rolled fresh: running the same list again has nothing to do with the last result. The track and its obstacles shape how the marbles travel, but no marble is favoured before the start.

In depth

The hard part is making randomness believable

A draw's purpose is not just a fair outcome — it is everyone accepting the outcome as fair.

A number appearing from nowhere leaves room for "did you rig that?". So this tool shows a ball physically rolling and settling.

Watching the process makes the result easy to accept, which is the same reason televised draws linger on the machinery.

The physics runs on seeded random numbers — the outcome is not decided first with an animation played over it. The simulation's result is the draw.

What it is used for

Deciding order: presentation order, chores, turn order.

Picking a winner, whether that is an event prize or who pays for dinner.

Breaking a deadlock about where to eat, when everyone says they don't mind. Randomness ends the discussion.

Splitting into groups works here too, though /teams is better once you are past a handful of people.

Every finished race hands you a link carrying its seed, so anyone who was not in the room can open it and watch the same race play out from the start.

When randomness feels unfair

Random sequences cluster. The same person coming up twice in a row is normal.

Flip a coin twenty times and a run of four is more likely than not — yet people read runs as rigging.

Evenly spread sequences feel more random than genuinely random ones. It is why music apps add "don't repeat the same artist" logic to shuffle.

If repeats are a problem, remove each pick and draw again. That is sampling without replacement, and it is the right model for assigning an order.

Getting people to accept the result

Agree the rules first — how many picks, whether redraws are allowed, whether you are drawing first place or last. Before spinning, not after.

Spin once. "Let's do that again, I didn't like it" destroys the point of randomising.

Spin in front of everyone. Announcing a result generates no trust.

Have people check the entries — a missing or duplicated name causes arguments later.

How the randomness works

This uses mulberry32, a seeded pseudorandom generator. The same seed produces the same sequence.

"Pseudorandom" means computed rather than predictable — without the seed you cannot anticipate the result.

It is not cryptographically secure. Fine for drawing lots, wrong for passwords or keys — that is crypto.getRandomValues, which /password uses.

Everything runs in the browser and participant names are not transmitted.

When you need a genuinely auditable draw

Do not use a web tool for draws involving money — prize promotions, housing allocations. Those carry legal requirements and need to be auditable.

Official draws typically require a notary present or verifiable randomness with a published seed and algorithm.

This is built for social use and small decisions. It is good for that and does not claim more.

FAQ

Is the result fair?

Yes. Every race runs a fresh physics simulation, so there's no predetermined winner — each run plays out differently.

What's it useful for?

Anything you'd normally use a spinning wheel or raffle for — deciding who goes first, picking a prize winner, or settling a group decision with a bit of fun.

How many names can I add?

There's no fixed limit — add as many participants as you like. More marbles just means a longer, more chaotic race.

Method and sources

What this tool bases its numbers on, and how far those numbers go.

What this tool is
A deterministic physics race replayed from a random seed. It is a fun way to pick someone, not a draw whose uniformity has been proven.
Formula
A 32-bit seed is drawn at the start and drives a seeded generator, so the whole race — marble placement, every collision, the finishing order — is reproducible from that seed alone. Starting slots are shuffled before the race so that no name is tied to a particular position.
Worked example
The same seed with the same names and the same course always produces the same finishing order, which is how a shared replay shows the identical result on another device.
Limitations
  • Uniformity is not guaranteed. Slot shuffling removes the obvious positional bias, but a physics course is not a proven uniform sampler — a course could favour some paths, and this makes no claim that it does not.
  • The seed comes from Math.random. That is approximate uniformity, not cryptographic strength, so the race is unsuitable where someone gains from predicting it.
  • Determinism holds only for the same course, names and simulation stepping. A different browser or a changed course version can diverge from a stored seed.
  • The simulation has safety valves — nudging stuck marbles and force-finishing a race that runs too long. Those keep a race from hanging, and they are not part of any fairness argument.
  • For anything with money or a real consequence, use a procedure the participants can audit.
Effective date
Last reviewed

Related tools

  • Ghost Leg (Ladder) — Randomly match names to outcomes with a ladder.
  • Team Splitter — Randomly split people into fair teams.
  • Plate Balance Game — Move the pole with your mouse and keep the plate up. Longest survival wins — settle a bet with it.
  • Darts Game — Throw at a real dartboard and play 01, Cricket or Count-Up against friends.