✓ Signature verified
Committed 18:10:18 · Drawn 18:10:24 · Signed by Random.org
Verifiable draw
Luxury Spa Day for Two
Our draws are made through Random.org's signed API. The full ticket pool is committed before the draw — then, at the draw itself, Random.org generates the winning number and cryptographically signs the result. This proof is published in full, so you can check the outcome yourself.
The result
Winning ticket
#00217
Winner
Rob T
Signed random value
65 (range 1–90)
Mapping
value 65 → index 64 (value − 1) → 90 entrants in ascending ticket order → ticket #00217
Drawn at
2026-08-17T18:10:24+00:00
The cryptographic proof
ticket ff5c3a5fca76f94eCommitted 18:10:18 · Drawn 18:10:24
Random.org ticket
ff5c3a5fca76f94e
Look this ticket up on Random.org: its creation time (the commit) is before its used time (the draw) — proof the draw was locked in before the number existed. Single-use, so it can't be re-rolled.
Committed at
2026-08-17T18:10:18+00:00
Public key hash
8bByyaWUon6tpjMOsnVAaEhXjmnxC/pVxztYzAVHn17QRrwlTY27JcP0I4KYC9Xyn8c4/Sp3fpv0ApkoXz3WdA==
Random.org's public SHA-512 hash of our API key — confirms the draw is ours, without exposing our secret key.
Serial number
22
Pool commitment (SHA-256)
6174c36994bc2dbb6ea700b06256f2c52010a46b57d63d7cfb6ddbff2a592afb
SHA-256 of
3b87db98-8bfe-4980-9e94-fe51af905edf|90|<all 90 ticket numbers, ascending, comma-separated>. Bound into the signature, so the value is tied to this exact entrant pool.Signature
gIBgdq/tI176qvkT7APqXhJ3acu6Jb0hlstlck2MlVSZkeP8hM6Nym/w8lKC60684MTNjNVrv2hD+sxrr8BjfJNSuZ62WKEzzuXP5hDIgqJzY02QdroME4h51LuiQuunbD55cn8iauOjaxXWQ5i9j/UFMCy4CufDjb86uoYEz93BlKYGz0d6QB4dFoKmhyAV+Gf44AgvDmwxkl32LJ46Z+6e1srpqsxheOKNUZcm6VmyyS+RDndnVAsFctCVQEWErET2qFCdIstU+K4urFdiJoNfFMqB1ghB3GWLTycDBWEA5IaNfOhAMUXfWEARE3eo7LaA+/mXumrLONMfz6PIRUt9D/ngiU9D0k20gXIq2ulTSnvYvGzQ3UE80k/iuywEqETL+a+AGrG88EjbWXkKu3TkSpddNmSXF9E2VGCyZYJOJWVa6TVJVIIFr0QeQh1ZJfncNN8JxWIwti+6c8Pe3tYtXT2zq7+o4Sj+1+qEnHudfobrthqJnRsT3KVrxJCWNivpU/PhQsT+7nnSKFTnxQTcVXV7Hh8vjerTUROeawLJKPUjm8EF0a9JU3Yx4ZTSEvWIFcST1vEUDCtN+anlzdw1vEvzKD+J7AOGtZR8xi47q/TaHAKWkSWqsFRpu/TkBSI5B1LeXAClAKzN/6n43EFRRJw50dVSUUc6RaJXZUY=
Show the signed random object (JSON)
{
"method": "generateSignedIntegers",
"hashedApiKey": "8bByyaWUon6tpjMOsnVAaEhXjmnxC/pVxztYzAVHn17QRrwlTY27JcP0I4KYC9Xyn8c4/Sp3fpv0ApkoXz3WdA==",
"n": 1,
"min": 1,
"max": 90,
"replacement": true,
"base": 10,
"pregeneratedRandomization": null,
"data": [
65
],
"license": {
"type": "developer",
"text": "Random values licensed strictly for development and testing only",
"infoUrl": null
},
"licenseData": null,
"userData": {
"competitionId": "3b87db98-8bfe-4980-9e94-fe51af905edf",
"count": 90,
"poolCommitment": "6174c36994bc2dbb6ea700b06256f2c52010a46b57d63d7cfb6ddbff2a592afb"
},
"ticketData": {
"ticketId": "ff5c3a5fca76f94e",
"previousTicketId": null,
"nextTicketId": "b20b12a113ddfe36"
},
"completionTime": "2026-08-17 18:10:24Z",
"serialNumber": 22
}Verify on RANDOM.ORG — the official checker
Copy the random object and signature below into random.org's own signature form. It should report authenticity: true.
Show the 90 entrant ticket numbers (ascending)
00001, 00002, 00003, 00006, 00015, 00017, 00018, 00025, 00035, 00043, 00044, 00049, 00050, 00054, 00057, 00061, 00066, 00074, 00079, 00085, 00090, 00098, 00105, 00109, 00116, 00117, 00119, 00120, 00123, 00132, 00133, 00134, 00136, 00141, 00143, 00145, 00148, 00150, 00152, 00153, 00154, 00155, 00157, 00159, 00161, 00162, 00163, 00166, 00168, 00171, 00173, 00174, 00175, 00176, 00178, 00182, 00186, 00187, 00189, 00191, 00193, 00195, 00209, 00214, 00217, 00218, 00219, 00222, 00226, 00229, 00233, 00238, 00239, 00241, 00245, 00250, 00253, 00256, 00257, 00258, 00259, 00260, 00265, 00267, 00268, 00269, 00272, 00276, 00289, 00292
Recompute the pool commitment from these to confirm the list wasn't changed after the draw.
Want to verify it independently? Here's how.
- Open Random.org's signature verification form . Paste the signed random object and the signature above. Random.org confirms it's authentic.
- Look up the ticket on Random.org and check its creation time is before its used time — the draw was committed before the number was revealed.
- Recompute the pool commitment (SHA-256 of the canonical string) from the entrant ticket numbers and confirm it matches the value bound into the signature's
userData. - Confirm the mapping: winning index = value − 1, giving ticket #00217.