# Verify a Random Draw

> Check that a random draw was not tampered with. Paste the certificate code and see whether the seed, the fingerprint and the numbers agree.

URL: https://acrafto.com/en/verify-random-draw/  
Updated: 2026-08-28

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

## 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

1. Set your range and how many numbers you need.
2. Press **Create fingerprint**. Publish the hash you get — in the giveaway post, in a comment, wherever entrants can see it with a timestamp.
3. Close entries, then draw.
4. 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

## Frequently asked questions (FAQ)

### Does a valid certificate mean the draw was random?

It means the draw was *not altered after the commitment*. Whether it was unpredictable depends on when the fingerprint was published. Published before the draw, in public, with a timestamp — then yes, the organiser was locked in. Published afterwards, it proves nothing about predictability.

### Is my certificate uploaded anywhere?

No. The check runs entirely in your browser, in JavaScript. Nothing leaves your device, and there is no server that could log it.

### What does "the fingerprint does not match" mean?

The seed or the settings in the certificate are not the ones that were committed to. Somebody edited the certificate, or it was generated by a different tool.

### What does "the seed does not produce these numbers" mean?

The fingerprint is intact, but the list of numbers was changed afterwards. The tool shows you the numbers the seed actually produces, so you can see the difference.

### Can I verify a draw from another website?

Only if it produced a certificate in this format. The check depends on the exact generator algorithm — a seed alone is meaningless without knowing how it was expanded into numbers.

### What if the certificate is very long?

Length depends on how many numbers were drawn, because the certificate carries the full result. A draw of six numbers gives a short code; a draw of ten thousand gives a long one. Both verify the same way.

## Other languages

- Čeština (cs): [Ověření losování](https://acrafto.com/cs/verify-random-draw/) ([Markdown](https://acrafto.com/cs/verify-random-draw/index.md))
- Slovenčina (sk): [Overenie žrebovania](https://acrafto.com/sk/verify-random-draw/) ([Markdown](https://acrafto.com/sk/verify-random-draw/index.md))
- Deutsch (de): [Zufallsziehung prüfen](https://acrafto.com/de/verify-random-draw/) ([Markdown](https://acrafto.com/de/verify-random-draw/index.md))
- Français (fr): [Vérifier un tirage aléatoire](https://acrafto.com/fr/verify-random-draw/) ([Markdown](https://acrafto.com/fr/verify-random-draw/index.md))
- Español (es): [Verificar un sorteo aleatorio](https://acrafto.com/es/verify-random-draw/) ([Markdown](https://acrafto.com/es/verify-random-draw/index.md))
- Italiano (it): [Verifica un'estrazione casuale](https://acrafto.com/it/verify-random-draw/) ([Markdown](https://acrafto.com/it/verify-random-draw/index.md))
- Português (pt): [Verificar sorteio aleatório](https://acrafto.com/pt/verify-random-draw/) ([Markdown](https://acrafto.com/pt/verify-random-draw/index.md))
- Nederlands (nl): [Trekking verifiëren](https://acrafto.com/nl/verify-random-draw/) ([Markdown](https://acrafto.com/nl/verify-random-draw/index.md))
- Polski (pl): [Weryfikacja losowania](https://acrafto.com/pl/verify-random-draw/) ([Markdown](https://acrafto.com/pl/verify-random-draw/index.md))
- Română (ro): [Verificare extragere aleatorie](https://acrafto.com/ro/verify-random-draw/) ([Markdown](https://acrafto.com/ro/verify-random-draw/index.md))
- Magyar (hu): [Sorsolás ellenőrzése](https://acrafto.com/hu/verify-random-draw/) ([Markdown](https://acrafto.com/hu/verify-random-draw/index.md))
- Ελληνικά (el): [Επαλήθευση τυχαίας κλήρωσης](https://acrafto.com/el/verify-random-draw/) ([Markdown](https://acrafto.com/el/verify-random-draw/index.md))
- Български (bg): [Проверка на теглене](https://acrafto.com/bg/verify-random-draw/) ([Markdown](https://acrafto.com/bg/verify-random-draw/index.md))
- Hrvatski (hr): [Provjera izvlačenja](https://acrafto.com/hr/verify-random-draw/) ([Markdown](https://acrafto.com/hr/verify-random-draw/index.md))
- Slovenščina (sl): [Preverjanje žrebanja](https://acrafto.com/sl/verify-random-draw/) ([Markdown](https://acrafto.com/sl/verify-random-draw/index.md))
- Eesti (et): [Kontrolli loosimist](https://acrafto.com/et/verify-random-draw/) ([Markdown](https://acrafto.com/et/verify-random-draw/index.md))
- Latviešu (lv): [Nejaušas izlozes pārbaude](https://acrafto.com/lv/verify-random-draw/) ([Markdown](https://acrafto.com/lv/verify-random-draw/index.md))
- Lietuvių (lt): [Patikrinti traukimą](https://acrafto.com/lt/verify-random-draw/) ([Markdown](https://acrafto.com/lt/verify-random-draw/index.md))
- Svenska (sv): [Verifiera en dragning](https://acrafto.com/sv/verify-random-draw/) ([Markdown](https://acrafto.com/sv/verify-random-draw/index.md))
- Dansk (da): [Verificér en tilfældig trækning](https://acrafto.com/da/verify-random-draw/) ([Markdown](https://acrafto.com/da/verify-random-draw/index.md))
- Suomi (fi): [Arvonnan varmennus](https://acrafto.com/fi/verify-random-draw/) ([Markdown](https://acrafto.com/fi/verify-random-draw/index.md))
- Norsk (no): [Kontroller en tilfeldig trekning](https://acrafto.com/no/verify-random-draw/) ([Markdown](https://acrafto.com/no/verify-random-draw/index.md))
- Українська (uk): [Перевірка чесності жеребкування](https://acrafto.com/uk/verify-random-draw/) ([Markdown](https://acrafto.com/uk/verify-random-draw/index.md))
- Русский (ru): [Проверка честности розыгрыша](https://acrafto.com/ru/verify-random-draw/) ([Markdown](https://acrafto.com/ru/verify-random-draw/index.md))
- Српски (sr): [Provera nasumičnog izvlačenja](https://acrafto.com/sr/verify-random-draw/) ([Markdown](https://acrafto.com/sr/verify-random-draw/index.md))
- Македонски (mk): [Провери случајно извлекување](https://acrafto.com/mk/verify-random-draw/) ([Markdown](https://acrafto.com/mk/verify-random-draw/index.md))
- Bosanski (bs): [Provjera nasumičnog izvlačenja](https://acrafto.com/bs/verify-random-draw/) ([Markdown](https://acrafto.com/bs/verify-random-draw/index.md))
- Shqip (sq): [Verifiko shortin](https://acrafto.com/sq/verify-random-draw/) ([Markdown](https://acrafto.com/sq/verify-random-draw/index.md))
- Türkçe (tr): [Rastgele çekilişi doğrula](https://acrafto.com/tr/verify-random-draw/) ([Markdown](https://acrafto.com/tr/verify-random-draw/index.md))
- 日本語 (ja): [ランダム抽選の検証](https://acrafto.com/ja/verify-random-draw/) ([Markdown](https://acrafto.com/ja/verify-random-draw/index.md))
- 한국어 (ko): [추첨 검증 도구](https://acrafto.com/ko/verify-random-draw/) ([Markdown](https://acrafto.com/ko/verify-random-draw/index.md))
- العربية (ar): [التحقق من السحب العشوائي](https://acrafto.com/ar/verify-random-draw/) ([Markdown](https://acrafto.com/ar/verify-random-draw/index.md))
- हिन्दी (hi): [रैंडम ड्रॉ सत्यापित करें](https://acrafto.com/hi/verify-random-draw/) ([Markdown](https://acrafto.com/hi/verify-random-draw/index.md))
- Bahasa Indonesia (id): [Verifikasi undian acak](https://acrafto.com/id/verify-random-draw/) ([Markdown](https://acrafto.com/id/verify-random-draw/index.md))
- Tiếng Việt (vi): [Xác minh lượt quay ngẫu nhiên](https://acrafto.com/vi/verify-random-draw/) ([Markdown](https://acrafto.com/vi/verify-random-draw/index.md))
- ไทย (th): [ตรวจสอบผลการสุ่ม](https://acrafto.com/th/verify-random-draw/) ([Markdown](https://acrafto.com/th/verify-random-draw/index.md))
- עברית (he): [אימות הגרלה אקראית](https://acrafto.com/he/verify-random-draw/) ([Markdown](https://acrafto.com/he/verify-random-draw/index.md))
