How it works

Four steps, and one of them is optional.

Add the names. Spin the wheel. Get the winner. Record proof if you need it.

1. Add the names

Type them one per line, paste a column out of Google Sheets, Excel or Numbers, or upload a .csv, .xlsx or .txt file. Up to 10,000 entries per wheel.

Spreadsheet imports do not assume anything. You are shown the worksheets, the detected columns with sample values, the row count, how many rows were blank, and how many duplicates there are — then you choose the name column and, if you want, a weight column. The preview updates as you change your mind.

The file is parsed in your browser. It is not uploaded, and formulas are never evaluated: Spinnza reads the value the spreadsheet already saved. Macros and embedded objects are never opened.

2. Spin the wheel

The winner is chosen first, from the complete list, using crypto.getRandomValues — your browser’s cryptographic random number generator. Math.random() is not used to pick a winner. The range is reduced by rejection sampling rather than a modulo, so no position in the list is even slightly favoured.

Weights are applied before the draw. An entry with three chances occupies three of the total, and duplicate rows each count separately.

Only then does the wheel move. The animation is told where to stop; it never decides anything. On a very long list the wheel shows a sample of entries rather than ten thousand hairline slices — and the winner is placed into that sample before the spin, so the pointer always lands on a real name.

3. Get the winner

The exact entry is shown in full underneath the wheel, however long it is and whatever characters it contains, and announced to screen readers. From there you can spin again, remove the winner, copy a clean result for a post, or download a free winner card image.

4. Record proof, if you need it

Everything above is free and always will be. The one paid feature is a recorded proof spin: a downloadable video of the draw itself, for $1.99, once.

The recording is a purpose-built composition, not a screen capture. It contains:

No browser chrome, no buttons, no advertising. It exports at 1080 × 1920, 1080 × 1080 or 1920 × 1080, as MP4 where your browser can encode it and WebM otherwise.

The Entry List ID

Every list gets a SHA-256 fingerprint of its exact entries and weights, shown as eight characters like 7F2A91C8. Post it when you announce the draw and anyone holding the same list can regenerate it and check it matches. It changes if the list changes — an added name, a removed one, a different order, a changed weight.

That is all it is. It shows the list in the video matches the list in your hand. It is not legal certification, notarization or an independent audit, and the timestamp is your device’s clock rather than a trusted timestamping service.

Buying and using a proof spin

See one

A real draw, silent, drawn by the same code that makes the file you buy.

More detail in the FAQ, or start on the wheel spinner.