RNGdle

How RNGdle works

One seeded roll per UTC day. Twenty-nine trait checks. One honest score.

The rules

  1. At every UTC midnight, a new daily number between 0 and 1,000,000 goes live.
  2. Anonymous visitors get a shared practice roll (seeded by the date, same for everyone, saved only in the browser). Signed-in players get an official personal roll — generated and scored server-side, one per person per day.
  3. Your first visit of the day reveals it slot-machine style. Revisits show it instantly.
  4. The number is analyzed for rare mathematical and pattern traits; rarer traits score higher.
  5. Official rolls earn EP and count toward your streak and the leaderboard.
  6. Share your result spoiler-free — the share text shows trait squares, never the number.
  7. Want more? Free rolls are unlimited and never saved.

EP — Energy Points

EP is the leaderboard currency, earned only by official rolls. The formula is exponential in the rarity score, so a lucky roll massively out-earns a common one:

EP = floor( e^(score / 2) × 100 )

score 4.2 (Trash)  →        816 EP
score 7   (Common) →      3,311 EP
score 12  (Epic)   →     40,342 EP
score 20           →  2,202,646 EP
score 25  (Mythic) → 26,833,728 EP

Official rolls are personal: the server derives your number from mulberry32(hash(SESSION_SECRET : UTCdate : userId)) — deterministic and verifiable, but unknowable in advance. One roll per person per day; the database enforces it. Rolling on consecutive UTC days grows your streak.

The daily seed

seed   = hash("rngdle-" + YYYYMMDD)   // UTC date, e.g. "rngdle-20260915"
number = floor(mulberry32(seed) * 1_000_001)   // integer in [0, 1,000,000]

mulberry32 is a tiny, fully deterministic PRNG. Feed it the same 32-bit seed and it produces the same stream on every device, forever — so the “roll” needs no server and can be verified by anyone.

Scoring

Each trait scores bits of surprise: if a trait appears in c of the 1,000,001 numbers, it earns -log2(c / 1,000,001) bits, capped at 20. Traits are sorted by bits and summed with a 0.5 decay per additional trait — your best trait counts in full, the second at half, the third at a quarter, and so on.

Every number also carries its digit sum, scored by how rare that sum is across the range — so no roll is ever truly zero. Counts are exact: we analyzed every number at build time.

Rarity tiers

TierScoreWhat it means
Trash 4.2Bottom ~1% of all rolls. A truly forgettable number.
Common 6An everyday number. Nothing to write home about.
Uncommon 6.9A little sparkle. Better than about half of all numbers.
Rare 7.8Top ~28%. Now we are talking.
Epic 9.3Top ~12%. Screenshot-worthy.
Anomaly 12.6Top ~4%. The machine blinked.
Mythic Top ~1%. Tell everyone. Immediately.

All traits, with exact counts

Out of 1,000,001 numbers, rarest first. Digit-sum scores separately per sum.

TraitCount1 inMeaning
Named number1283,333A number the internet (or history) gave a name to.
Power of two2050,0002 raised to some exponent, like 65536 = 2¹⁶.
Ascending sequence2245,455Every digit is exactly one more than the last, like 123456.
Descending sequence2638,462Every digit is exactly one less than the last, like 654321.
Fibonacci number3033,333Lives in the Fibonacci sequence.
All same digit4522,222Every digit is identical, like 777777.
Perfect cube1019,901An integer cubed, like 91125 = 45³.
ABAB pattern1805,556Two digits alternating, like 1212 or 565656.
Monster digit run1815,525Five or more of the same digit in a row.
ABCABC pattern9001,111A three-digit block repeated twice, like 456456.
Round number1,0001,000A clean multiple of 1,000.
Perfect square1,001999An integer times itself, like 729 = 27².
Triangular number1,414707Counts dots in a triangle: 1, 3, 6, 10, …
Rising run1,865536Contains 4+ digits climbing by one, like 883456.
Falling run1,962510Contains 4+ digits dropping by one, like 965432.
Palindrome1,989503Reads the same forwards and backwards.
Quadruple digit run2,520397Four of the same digit in a row.
Two distinct digits4,537220Built from exactly two different digits.
Triple digit run33,21930Three of the same digit in a row.
Alternating odd/even34,87529Odd and even digits strictly alternate.
Prime78,49813Divisible only by 1 and itself.
Harshad number95,42810Divisible by the sum of its own digits.
Zigzag136,4257Digits strictly alternate up-down-up-down.
Happy number143,0717Repeatedly summing squared digits reaches 1.
All digits unique167,8326No digit repeats anywhere.
Semiprime210,0355A product of exactly two primes.
First < last399,9963The first digit is smaller than the last.
Zero-free597,8702Contains no zero digit at all.

Named numbers (42, 666, 1337, …) score as one-of-a-kind: 1 in 1,000,001.

FAQ

How is the daily number chosen?

The number is floor(mulberry32(hash("rngdle-YYYYMMDD")) * 1,000,001) using the UTC date. It is deterministic, so every player rolls the same number and anyone can reproduce it.

How is the rarity score calculated?

Each trait contributes -log2(count / 1,000,001) bits, clamped to 20. Traits are sorted by bits and summed with a 0.5 decay per additional trait.

What are the rarity tiers?

Seven tiers from Trash (bottom 1%) to Mythic (top 1%), with thresholds computed from the score distribution of all 1,000,001 numbers at build time.

Want the deep dives? Browse the pattern library14 patterns with examples and stats.