Verify a Random Draw
Paste a certificate code to check it.
What this tool checks
Someone ran a draw and gave you a certificate code. This page tells you whether that code is internally consistent — whether the numbers really come from the seed the organiser published, and whether the fingerprint really covers that seed and those settings.
Everything runs in your browser. The certificate is never sent anywhere.
The two checks
Fingerprint. The certificate carries a SHA-256 hash over the seed and the draw settings. This page recomputes that hash. If it does not match the one stored in the certificate, the seed or the settings were altered after the commitment was made.
Replay. The seeded generator is fully deterministic, so the same seed and the same settings always produce the same numbers. This page reruns the draw and compares. If the numbers differ, the result was edited.
A certificate passes only when both checks pass.
What a passing check does and does not prove
It proves the organiser did not quietly change the seed, the settings, or the numbers after committing to them.
It does not prove the seed was unpredictable. If the organiser picked the seed themselves and never published the fingerprint before drawing, they could have tried many seeds and kept the one they liked. The fingerprint only means something when it was published before the draw, somewhere with a timestamp — a post, a comment, a message.
That is the whole point of the commit step: it turns “trust me” into something anyone can check afterwards.
Running a draw people can verify
- Set your range and how many numbers you need.
- Press Create fingerprint. Publish the hash you get — in the giveaway post, in a comment, wherever entrants can see it with a timestamp.
- Close entries, then draw.
- Publish the seed and the certificate. Anyone can paste it here.
Skipping step 2 makes the certificate decorative. Publishing the fingerprint first is what gives it weight.
Why a seed alone is not enough
A seed is just text. It only produces numbers once you know how it was expanded into them — which algorithm, which range, how many numbers, whether repeats were allowed.
That is why the fingerprint covers the seed and the settings. Without it, an organiser could publish a seed, then claim afterwards that the draw ran over a different range and that some other set of numbers was the real result. The commitment closes that door.
What a fingerprint cannot be forged into
A SHA-256 hash is a one-way function: easy to compute forwards, and with no known way to run backwards. That is what makes the commitment binding.
To cheat, an organiser would need to publish one fingerprint and later reveal a different seed that produces the same hash — a second-preimage attack. Nobody has found one against SHA-256, and the search space makes brute force meaningless: 2²⁵⁶ is more than the estimated number of atoms in the observable universe.
What they also cannot do is nudge the outcome. Changing a single character of the seed changes roughly half the bits of the hash, unpredictably. There is no way to search for a seed that both matches a published fingerprint and produces a convenient winner, because you would have to fix the hash first and the hash depends on everything.
So the fingerprint pins down the seed and the settings completely. The only thing it cannot pin down is when it was published — which is why the timestamp on your post is doing half the work.
Where verifiable draws matter
- Giveaways and competitions — entrants who did not win are the ones who ask
- Community and DAO selection — picking who gets a slot, a grant, a role
- Research — a sampling plan a reviewer can rerun and confirm
- Prize promotions with legal exposure — some jurisdictions require a demonstrable method, not just an assertion
- Anything a stranger has to believe — the further the audience, the less “we picked randomly” is worth on its own