Provably Fair Giveaway

A provably fair giveaway is one where entrants do not have to take your word for the result — they can recompute it. Before entries close, SpinOfLuck publishes a sealed cryptographic commitment to the random seed. When the draw runs, the seed is revealed alongside the complete entry list, every participant's odds, and the exact algorithm used. Anyone can then re-run the arithmetic and land on the same winner. If a single name, weight or number had been changed afterwards, the published result would stop matching and the verification page would say so. It is free, needs no account, and produces a permanent link and a PDF certificate you can share.

Why use this wheel

  • Seed committed as a SHA-256 hash before entries close — it cannot be swapped later
  • Complete entry list published: every name, weight and ticket range, nothing hidden
  • One-click "Verify in my browser" — entrants recompute the winner on their own device
  • Permanent public link that never changes, plus a downloadable PDF certificate
  • Optional public seed (a Bitcoin block hash, say) so neither you nor we control the outcome
  • Privacy mode replaces names with anonymous IDs before anything is published
  • Open JSON API — anyone can build their own independent verifier

Common uses

  • High-value prize draws. When the prize is worth enough that someone will question the result, mix in a public seed — a blockchain block hash published after entries closed — so the outcome depends on entropy neither the host nor SpinOfLuck controls.
  • Livestream and community giveaways. Post the commit hash in chat before you close entries, run the draw live, then drop the verification link. Sceptics can check it themselves instead of arguing in replies.
  • Sponsored and brand promotions. Sponsors increasingly ask for evidence that a promotion ran as advertised. The PDF certificate carries the entry list, seed, algorithm and result in one attachable document.
  • Raffles and fundraisers. Publish the ticket list with each holder's ticket range, then draw. Every participant can see exactly which numbers were theirs and which number won.
  • Internal and HR draws. Turn on privacy mode so the published record shows anonymous IDs rather than employee names. The draw stays exactly as verifiable; only you hold the mapping.

In-depth guide

What makes a giveaway provably fair?

Most giveaway tools ask you to trust them. They spin an animation, announce a name, and the only evidence anyone gets is that the animation looked random. That is not evidence — a rigged tool would look identical.

A provably fair giveaway replaces trust with arithmetic. Three commitments are made publicly, in a specific order, and each one is checkable afterwards. First, the random seed is sealed: its SHA-256 hash is published while the seed itself stays hidden. Second, the entry list is frozen and hashed when entries close, binding the draw to exactly who entered and on what odds. Third, the seed is revealed and the winner is derived from it by a documented algorithm.

The order matters more than any individual step. A seed sealed after the entry list is known proves nothing, because it could have been searched for. Sealing first, and only then accepting entries, is what turns the published hash into a real constraint.

How the winner is actually chosen

Each participant holds a block of consecutive ticket numbers, sized by their entries multiplied by their weight. Someone with 10 entries at weight 3 holds 30 consecutive tickets. The published record shows every participant's exact ticket range, so the blocks can be checked to be contiguous and to cover the whole pool with no gaps or overlaps.

To draw, the final seed is hashed together with the round number. The first 48 bits of that hash are read as an integer, and samples that would skew the result are discarded before the remainder is reduced into the ticket range. That discard step is what makes the draw genuinely uniform: taking the raw value modulo the pool size very slightly over-weights the lowest ticket numbers. The bias is far too small for anyone to notice in practice, which is exactly why it is removed rather than argued about.

Because every step is a SHA-256 hash and integer arithmetic, reproducing a draw requires no special library and no random number generator. Any programming language with SHA-256 can verify a SpinOfLuck draw in a few lines.

What a verifiable draw does not prove

Honesty about the limits is part of the point. A published draw proves the winner was picked fairly from the list that was published. It cannot prove that the host entered everyone who signed up, or that every name on the list is a real person. No external system can establish that.

What the design does force is that the entry list be published and frozen before the seed is revealed. Padding a list with fake entries is still possible in principle, but it has to survive the audience reading the entry list on the verification page — and entrants notice when they cannot find their own name, or when a list of 200 contains 80 names nobody recognises.

The other limit worth stating: if a host picks which public seed to use after seeing the result, the extra guarantee the public seed provides is void. The underlying commitment is unaffected, but the public seed only helps when its source is named in advance.

When to use this instead of a normal wheel

Most draws do not need this. Picking who presents first at a stand-up, choosing a restaurant, drawing a name in class — for those, a wheel that runs in your browser and stores nothing is the better tool, and SpinOfLuck's ordinary wheel and giveaway picker are built exactly for that.

Reach for a verifiable draw when the result will be disputed or has to be defensible: a prize worth real money, a sponsored promotion where the sponsor wants an audit trail, a community where trust has already been damaged by a previous draw, or any situation where you would rather hand someone a link than an argument.

The cost of the extra rigour is that the draw becomes public and permanent. The entry list, the seed and the result stay online at a fixed URL, and a completed draw can never be edited or deleted. That permanence is the feature — but decide you want it before you draw, and use privacy mode if the names should not be public.

How to use provably fair giveaway

  1. Open the draw and publish the commitment. Give the giveaway a title. SpinOfLuck seals a random seed and publishes its SHA-256 hash. Share that hash with your audience now — before entries close — because that ordering is what makes the draw provable.
  2. Close entries. Paste the final participant list, one per line. Add *N for an odds multiplier and xN for multiple entries. Closing freezes the list and hashes it, so no name can be added or edited afterwards.
  3. Add a public seed (optional). For high-value prizes, paste a public value that did not exist when you committed — a recent Bitcoin block hash or a random.org draw. Announce which source you will use before you draw.
  4. Reveal and draw. Press draw. The seed is revealed, the winning ticket is derived from it, and the result is published permanently. This cannot be undone or re-run.
  5. Share the verification link. Post the permanent link with your announcement. Entrants can press "Verify in my browser" to recompute the winner themselves, or download the PDF certificate.

Frequently asked questions

What does "provably fair" actually mean?
It means the fairness of the draw is something you can check rather than something you are told. Three things are published: a sealed commitment to the random seed made before entries closed, the complete entry list with every participant's odds, and the exact algorithm. Re-running the algorithm on the published seed and list produces the winner. If any of those had been altered after the fact, the recomputation would produce a different answer and the verification page would show a failure.
How does committing to the seed before entries close help?
A seed chosen after seeing who entered could have been picked to land on a favoured person. Publishing SHA-256 of the seed in advance fixes it without revealing it: a hash cannot be reversed, and finding a second seed with the same hash is infeasible. So when the seed is revealed at the end, anyone can hash it and confirm it is the same one that was sealed before anybody knew the entrant list.
Do entrants need any technical knowledge to verify?
No. The verification page has a "Verify in my browser" button that re-derives the winner on their own device and reports whether it matches — no code, no account, no install. For anyone who wants to go further, the record is available as JSON and the algorithm is fully documented, so an independent verifier can be written with nothing more than a SHA-256 implementation.
What is the public seed for?
The commitment stops the seed being changed after entries close, but on its own it does not stop a dishonest host generating many seeds beforehand and committing to a flattering one. Mixing in a public value that did not exist at commit time — a block hash mined after entries closed — closes that gap, because neither side controls both halves of the final seed. Announce which source you will use before drawing; choosing it afterwards proves nothing.
Can the winner be changed after the draw?
No. A completed draw is immutable at the database level, not just by policy — the security rules refuse every write to a completed record, including ours. Beyond that, the winner is not stored as a claim: it is recomputed from the published seed and entry list every time the page loads, so editing any published value would immediately break the match.
Are participants' names always public?
Only if you choose. Privacy mode replaces every name with an anonymous ID before anything is stored or published, so the record shows anon-0001 rather than a real person. The ticket maths is untouched, which means an anonymised draw is exactly as verifiable — only you hold the mapping back to real people. It is the right setting for anything involving minors or customer data.
How many entrants can a verifiable draw hold?
Up to 5,000 participants per published draw, because the record publishes every single row with no pagination and has to stay within a document size limit. For larger lists, the in-browser giveaway picker handles up to 100,000 entries — it just does not publish anything.
Is it free?
Yes. Running a verifiable draw, the permanent verification link, the PDF certificate and the JSON API are all free and need no account.

Free random spinner from SpinOfLuck, with no signup and no ads, running entirely in your browser.