Skip to content

Recent winners

Help Sign up freeJoinBrowse competitionsBrowse
Provably fair

Check a draw yourself

You do not have to trust us. Before entries close we publish a locked-in secret, and we name a public random number that will not exist until after the draw. Afterwards we publish both. Anyone who has those numbers gets the same winner we did, every time.

No account needed, nothing to install. It runs in your browser, and it takes about a minute.

1 Pick the draw you want to check

Choose one and every box on this page fills in with that draw's published numbers.

In the meantime the page is loaded with an example, so you can watch the check work right now. The secret below is made-up and says so. The random number is real: it is genuine drand round 6,500,000, published on 26 September 2026 at 14:57, which is why step 2 can go and look it up for you.

2 Read the answer

Checking the example below

  1. Was the secret locked in before entries closed?

    Checking...

  2. Was the random number genuinely public?

    Checking...

So the winning ticket is ...

Not convinced the numbers are doing the work?

3 See the numbers it used

Each box is a number we publish, not something you have to work out. Edit any of them and the answer above updates as you type.

Why this means a draw cannot be fixed

  1. We cannot change the secret afterwards. Its fingerprint is published before entries close. Change so much as one character of the secret and the fingerprint no longer matches, which is what the button in step 2 shows you.
  2. We cannot choose the random number. It comes from drand, and we have to name which one we are using before entries close. At that moment the number does not exist yet, so there is nothing to pick and nothing to wait for.
  3. We cannot choose the winner. The ticket is worked out from those two numbers and the entry count, by a fixed sum with no decisions in it. Anyone running the same sum gets the same answer.

The draw runs automatically at 9pm on the closing date and the result is published here, so there is nothing to watch and nothing to take on faith. If you ever get a different answer from ours, tell us and we will publish what went wrong.

The exact calculation, for anyone repeating it in code

This is the exact method every Grand Draws draw uses, worked through with the example values above. Run the same steps on any published draw and you will get its winning ticket.

  1. The secret, revealed after the draw: example-secret-not-a-real-draw
  2. The fingerprint, published before entries close, is the SHA-256 hash of the secret: 6bf93ca303087eadeeb2e52139fc90c917ce4980ba2a6a4dd7d78811d9333bad
  3. The random number is the randomness value of the drand round named in advance, written as drand:chain:round:randomness: drand:8990e7a9aaed2ffed73dbd7092123d6f289930540d7651336225dc172e51b2ce:6500000:1d43ea5935608fa3eb7af9a7e2aa9b03e9b5e1e2d0ceb84ced6d2faf562ed7ba
  4. The message for winner 1 is that string followed by |1: drand:8990e7a9aaed2ffed73dbd7092123d6f289930540d7651336225dc172e51b2ce:6500000:1d43ea5935608fa3eb7af9a7e2aa9b03e9b5e1e2d0ceb84ced6d2faf562ed7ba|1
  5. HMAC-SHA256, with the secret as the key and that message: 5f576b4e28e8b10eeda02c22c648278e93c969f8ef5bba660156032b68e7c6da
  6. The first 8 bytes of it (the first 16 hex characters) are 5f576b4e28e8b10e, which as a whole number is 6870077740014940430
  7. Divide by the number of entries (8,500) and keep the remainder: 5930
  8. Add 1 to get the winning ticket: #5,931

With more than one winner, winner 2 uses the message beacon|2, winner 3 uses beacon|3, and so on. Each one picks from the tickets not already drawn, so no ticket can win twice.

// The whole method, in JavaScript (the checker above runs this in your browser)
commitment = sha256hex(seed)
for p in 1..winners:
  h     = hmacSha256(key = seed, message = beacon + "|" + p)
  n     = first 8 bytes of h, as a big-endian unsigned integer
  index = n mod (entries - winnersAlreadyDrawn)
  ticket = index + 1, counted over the tickets not yet drawn

The drand chain we use is 8990e7a9aaed2ffed73dbd7092123d6f289930540d7651336225dc172e51b2ce, a round every 30 seconds. Any round is permanently readable at api.drand.sh.

Where to go next

Enter the next draw

See all

Play for free

The game
Free instant win

One free play a week. No card, no payment, and the result is settled the moment you play: 58 winning numbers are pinned across 10,000 entries before the game opens.

  • Chance of a winabout 1 in 172
  • Cash prizes8, up to £50.00
  • Cost to playnothing

Most plays win nothing. That is what those odds mean.

Take your free play

Draws run at 9pm on the closing date and every winner is published here. Tickets from 9p, in minimum orders of 25, or free by post. 18+.

Sign in

New here?

Forgotten your password?

Add your date of birth

Entry is 18+ only. We ask once and keep it on your account.

Your date of birth

For example, 27 3 1990