Verifiable draw

Provably Fair Giveaway Picker

Run a giveaway nobody can call rigged. SpinBloom's fair mode publishes a cryptographic commitment before the wheel spins and reveals the secret afterwards โ€” so every entrant can verify the winner was chosen by chance, not by you.

Open the picker โ†’

The problem with normal winner pickers

Any site can display a random-looking wheel and land it wherever it likes โ€” entrants just have to trust the host. For a small classroom draw that's fine. For a giveaway with real prizes, "trust me" invites accusations: you rigged it, you re-spun until your friend won, the screenshot is fake. The fix is an old cryptographic idea called a commitment scheme: lock in the outcome publicly before the draw, in a form nobody can decode until it's revealed.

How SpinBloom's fair mode works

1. When you spin with Verifiable fair mode on, the tool generates a secret random seed and immediately shows you its SHA-256 hash โ€” the commitment. Share that hash with your audience before the result.
2. The winner is computed from the seed with a published rule, and the wheel animation lands exactly on that entry.
3. After the spin, the seed is revealed alongside a copyable proof containing the entry list, the seed, the hash and the rule.

Anyone can now check two things with any SHA-256 tool: the revealed seed hashes to the pre-published commitment (so it wasn't changed after the fact), and the rule applied to the seed produces exactly the announced winner. The host has no room to cheat โ€” re-spinning would produce a different commitment, and a doctored winner wouldn't match the seed.

Running a clean giveaway, start to finish

Paste your entrant list into the wheel (one name per line), set Winners to how many prizes you have, and turn on fair mode. Post the commitment hash where entrants can see it, spin once, then post the proof. The winner history keeps a timestamped log you can export as CSV for your records. If someone entered twice, weights let you correct entries without deleting anyone.

Why you can trust the randomness itself

Every draw uses crypto.getRandomValues โ€” the browser's cryptographically secure random generator, the same machinery used for encryption keys โ€” not JavaScript's basic Math.random. And because everything runs client-side, your entrant list never leaves the device.

FAQ

Frequently asked questions

What exactly does the proof contain?

The entry list with weights, the secret seed, its SHA-256 commitment, the winners, and the exact rule: pick i = first 8 bytes of SHA-256(seed + ":" + i) as an integer, mod the remaining total weight, walked cumulatively over remaining entries.

How would an entrant actually verify?

Paste the seed into any SHA-256 tool and compare with the commitment. For a full check, apply the published rule โ€” a few lines in Python or any language with SHA-256.

Can I draw several winners in one committed spin?

Yes, up to 10. All picks derive from the same seed with no duplicates, so one commitment covers the whole prize list.

Is this free? Does it phone home?

Free, no sign-up, and fully client-side โ€” names, seeds and proofs are generated in your browser and never uploaded.

More random tools

Random name picker ยท Yes/No wheel ยท Team generator ยท Random number ยท All SpinBloom tools