Skip to main content

Verify this draw

Win a Jellycat Plushie Of Your Choice #1 was drawn on 3 Jul 2026. The winner was Jadine C. from Northampton with ticket #9.

Method

Verified auto-draw

Total entries

160

Winning ticket

#9

Winner's odds

1 in 5

In plain English

Before entries closed, we locked in a secret number and published a short code (its “fingerprint”) that proves we couldn’t change it later. After entries closed, that number picked the winning ticket. So the result couldn’t be set up in advance. The steps further down let you re-run it and land on the same ticket yourself.

How this draw is provable

Before entries closed we published a commitment: a one-way fingerprint (SHA-256) of a secret random seed. After the draw we revealed the seed. Because the commitment was public before entries closed, the seed could not have been changed afterwards to pick a particular winner.

Commitment (published before entries closed)
440b22a7d035f2becfabf17721ee9be9388f7056cfb78f6743c757804a29ed18
Revealed seed (published after the draw)
14979e92f42b25a4eadf2e115a2ddc902642805e4959d8b6cfedddbbea3e1a35

Check it yourself

1. The seed matches the commitment

Run SHA-256 on the revealed seed - it equals the commitment above. For example, in a terminal:

printf '%s' '14979e92f42b25a4eadf2e115a2ddc902642805e4959d8b6cfedddbbea3e1a35' | sha256sum

2. The winning position comes from that seed

The position was derived from the locked-in seed and the final number of entries, so it couldn't be steered once entries were seen. Entries are counted in a fixed order (oldest first); this is a place in that list, not a ticket number. Recompute it and you'll get position 158:

$seed  = '14979e92f42b25a4eadf2e115a2ddc902642805e4959d8b6cfedddbbea3e1a35';
$total = 160;
$msg   = 'draw:019f1e20-0011-708a-81d0-6da87e270291:'.$total;
$span  = 1 << 60;                          // 60-bit space
$limit = intdiv($span, $total) * $total;   // reject above this to remove bias
$i = 0;
do {
    $n = (int) hexdec(substr(hash_hmac('sha256', $msg.':'.$i, $seed), 0, 15));
    $i++;
} while ($n >= $limit);
echo ($n % $total) + 1;                     // => 158

3. That entry holds the winning ticket #9

The 158th entry in that fixed order (oldest first) is the winner, and it holds ticket #9. To protect entrants' privacy we don't publish the full list of who entered, but we publish a fingerprint of it - so the order can't be altered after the fact - and we hold the full ordered list in our tamper-evident audit trail, available to the Advertising Standards Authority on request.

Entry-list fingerprint
026b79579b1443cd6ab637f5609f0016c45a7498da114f8ca0329be1252f6e0f

How ticket numbers are assigned

This competition has a fixed set of 160 tickets, and on this draw you choose your own ticket number when you enter, from the numbers still available. They aren’t handed out one after another in entry order. Your number is fixed the instant you buy, timestamped, and independently verifiable there and then.

Whichever number you pick doesn’t decide anything on its own. The winner is picked at the draw (shown above), from a secret value committed and published before entries closed, so the number you chose can’t affect who wins. Every number that’s taken appears in the competition’s entrants list, so the numbers in play are public and can’t be quietly changed later.

See how all our draws work on our fairness & security page, or back to all winners.

?