Random Wheel Picker

Paste your names, spin the wheel, get an indisputable winner drawn from your browser's crypto random generator.

The wheel spins locally: your entries never leave the page and winners are drawn by your browser's own entropy source.

—
Winner history

    No spins yet — the winner of each turn will appear here.

    How It Works

    Every non-empty line becomes one sector of a canvas wheel, coloured from a palette derived from the site's accent hue. When you press Spin, the tool first picks the winner with a secure random draw, then computes the exact stopping angle that parks that sector under the pointer at the top, and finally plays the animation for about 3.5 seconds so the result feels earned rather than announced.

    The arc maths
    With n entries each sector spans 2π/n radians. The pointer sits at the 12 o'clock position (−π/2 in canvas coordinates), and sector i occupies the arc [i·2π/n, (i+1)·2π/n) rotated by the wheel's current angle. To land on winner w, the wheel stops at −π/2 − (w + ½)·2π/n plus three to five full turns for flourish — so the animation is deterministic once the winner is drawn, and the visual can never disagree with the result.
    Why ease-out cubic
    The spin follows 1 − (1 − t)³: fast start, long decelerating tail. It mimics a real wheel losing momentum to friction, and it keeps the last second slow enough that everyone can watch the pointer settle instead of squinting at a blur. Total duration is fixed at 3.5 s regardless of entries, so classroom attention never drifts.
    Fairness: crypto, not a seeded pseudo-random
    Winners come from crypto.getRandomValues — the operating system's entropy pool — with a direct uniform pick over the entry count (30 sectors max against a 32-bit draw introduces no meaningful bias). There is no seed to inspect, no repeatable sequence, and no server involved: the result is genuinely unpredictable at the moment you press Spin.

    Frequently Asked Questions

    Is the result really random?

    Yes — and deliberately so. The winning sector is drawn with crypto.getRandomValues, the browser's cryptographically secure generator, so the outcome cannot be predicted, seeded or reproduced. There is no hidden weighting either: every line you enter has exactly the same chance.

    Can I give some entries a bigger slice?

    The wheel is strictly one-slice-per-entry, but there is a neat trick: repeat a line. Enter "Team Red" twice and it gets two sectors, i.e. double the chance. Since the picker works on unique lines only after trimming, duplicates are easy to spot and count.

    Does it work in a classroom or at a party?

    That is exactly what it is built for: the whole page runs offline, so it works on venue Wi-Fi, on a projector, or with the internet switched off entirely. The large canvas wheel and the winner banner are readable across a room, and the history list keeps a transparent record of every draw in the session.

    Why is the entry list capped at 30?

    Two honest reasons. A 30-slice wheel already gives each sector only 12°, past which labels cannot be drawn legibly and slices become hard to tell apart when the pointer stops. And readability is fairness too: if you cannot see which sector won, the draw loses its point.

    Is anything uploaded to a server?

    No. Names are never sent anywhere — the wheel is drawn on a local canvas and the randomness comes from your own browser. The history lives only in the page and disappears when you reload or hit Reset.