Roulette Wheel

Spin a roulette wheel of names or items to pick one at random. Each entry gets an equal slice; the wheel decelerates with realistic easing and shows the winner. Optional auto-remove for tournament-style elimination.

Loading…

All processing runs in your browser — no files or inputs are uploaded to a server.

How to use

Type one entry per line in the textarea — names, dish options, gift recipients, anything. The wheel updates in real time. Click **Spin** to randomize: the wheel turns several full rotations and decelerates to a winner sector. Each entry occupies an equal-sized sector regardless of name length, so the probability of any single entry winning is `1 / N`.

Turn on **Remove winner after spin** for tournament-style elimination — each spin drops the winner from the list, so by repeated spins you can rank everyone. Spins use `Math.random()` for selection; the visual rotation is computed *after* the winner is chosen, so the animation is honest rather than landing wherever the wheel happens to stop. Nothing leaves the browser.

Examples

Lunch picker — 5 restaurants

Input
Pho Saigon
Ramen Daisho
Taco Plaza
Green Bowl
Curry House
Output
→ Ramen Daisho   (each option has 1/5 = 20% chance)

A common office use — five teammates, five restaurants, no decision. Spin once and commit. The wheel makes the pick feel like a ritual rather than a unilateral choice, which is half the point.

Rank a group of 10 — elimination mode

Input
10 names, "Remove winner after spin" ON
spin 10 times → ranked list 1st…10th
Output
1st: Bob
2nd: Alice
3rd: Charlie
…
10th: Eve

For draft order, presentation order, or chore rotation. Each subsequent spin has fewer options and the probabilities shift, but every initial entry still ends up somewhere in the ranking exactly once.

FAQ

Is each entry really equally likely?

Yes. The winner is picked first with `Math.floor(Math.random() * N)`, which is uniform over `0..N-1`. The wheel then rotates to make the chosen sector land under the pointer, with several extra full turns added for show. The visual is a presentation layer over the random pick, not the source of randomness.

Can I weight entries differently?

Not directly — every entry is one sector. To bias the draw, repeat an entry: writing `Alice` three times and `Bob` once gives Alice a 75% chance. This is uglier on the wheel but transparent — anyone watching can count the slices.

How many entries can I add?

There is no hard cap, but labels start truncating around 16 entries and the wheel gets cramped past 30. For larger draws use a different format — the elimination mode of this tool, or sort by random key in a spreadsheet.

Does the result depend on where the wheel was last time?

No. Each spin draws a fresh random index from `Math.random()`, independent of the wheel's current angle. The starting rotation only affects how the deceleration animation looks, not which sector ends up under the pointer.

Related tools