A library of random generators
Randomness,
sourced from reality.
Drawn for this page load · Integers
4, 6, 24, 38, 44, 50
Atmospheric radio noise, sampled in Dublin moments ago. Check it yourself ↗
Every result carries a receipt like that one: the source, the moment, the proof. Reload this page and the numbers change, because the world did.
- 32
- generators live
- 31 more specified
- 6
- modules shipping
- of 6 planned
- 10
- entropy sources
- wired and probed
- 0
- API keys
- no signup, ever
- Operating System CSPRNG drawn fresh per request class A
- ANU Quantum Vacuum — class A
- RANDOM.ORG Atmospheric radio noise, sampled in Dublin moments ago. class A
- NIST Randomness Beacon — class B
- drand · League of Entropy — class B
- Bitcoin Proof-of-Work — class B
- USGS Seismic Feed — class C
- NOAA Space Weather — class C
- Live Weather — class C
- ISS Position — class C
Values appear as each source gets drawn from. Nothing is fetched merely to fill this strip · what each one is worth → · the ticker lost its connection and is showing its last known values
Pick what you want to be random.
6 of 6 modules have something live in them: 32 generators built, 31 more specified and not written. The cards below keep the two apart, because a catalogue that counts unwritten code is just a wishlist.
-
Numbers
3 liveIntegers, distributions, dice and the points on a sphere everyone gets wrong.
10 planned · Decimals · Bell Curve · Distribution Lab · …
-
Words
7 livePassphrases with real entropy, and words that never existed.
2 planned · Word Web · Fictional People
-
Equations
9 liveProblems with clean answers, built backwards from the solution.
- Mental Math →
- Expression Tree →
- Linear Equations →
- Quadratics →
- Systems →
- Calculus →
- Matrices →
- True or False? →
- Find the Pattern →
everything specified for this module is built
-
Patterns
5 liveNoise, growth and decay — Perlin, Gray-Scott, cellular automata.
10 planned · Simplex Noise · Spectral Noise · Life · …
-
Images
3 liveFlow fields, superformula blobs, perceptual palettes, real art.
6 planned · Circle Packing · Mondrian · Mesh Gradient · …
-
Audio
5 liveNoise colours, Euclidean rhythms and strings plucked out of static.
3 planned · Drone · UI Sounds · Generative Ambient
Collect, condition, generate.
Three steps, one of which is a single line of PHP. The honesty is in the middle one.
-
01
Collect
10 free, keyless sources: the kernel's own pool, a quantum optics bench in Canberra, atmospheric radio noise, a signed government beacon, a threshold signature network, ten minutes of global Bitcoin hashrate, and every earthquake on Earth in the last hour. Every call has a timeout and a circuit breaker; when one misses we fall back to the OS CSPRNG and mark the receipt degraded rather than pretending.
-
02
Condition
The exotic material supplies the story and a real contribution. Fresh CSPRNG bytes, the nanosecond clock and a counter supply uniqueness — which is what makes caching a 60-second beacon pulse safe without ever reusing a seed.
ikm = source ‖ random_bytes(32) ‖ hrtime() ‖ counter seed = hash_hkdf('sha256', ikm, 16, 'randomly.seed') -
03
Generate
16 bytes and a token. The token is the seed, so a permalink recomputes the result instead of looking it up — which is why this site has no database. Change a parameter and you get a different answer from the same randomness; press Generate and you get new randomness. Two buttons, one lesson.
info = randomly/v1|{generator}|v{n}|sha256(params)
Every result has a receipt.
This is the receipt for the numbers at the top of this page — not an example, the actual one, from this request.
- Source
- RANDOM.ORG
- Narrative
- Atmospheric radio noise, sampled in Dublin moments ago.
- Observed at
- 2026-09-13T18:14:45+00:00
- Mixed with
- csprng — always
- Latency
- 284 ms
- Entropy in
- 16 bytes
- Duration
- 84 µs
- Token
- SN8Y0ZP8FK3T2HKE6D63CRPBDG
The same API we use.
There is no private API. This page's own hero went through the endpoints below. No authentication, no key, no signup — matching every source we draw from. Rate limited to 60 requests a minute per IP.
curl -s 'https://randomly.cluxnei.dev/api/v1/g/numbers.integers?count=6&min=1&max=60&unique=1' \
-H 'Accept: text/plain'
4, 6, 24, 38, 44, 50
- GET /api/v1/generators the catalogue, machine-readable
- GET /api/v1/sources every source, status and class
- POST /api/v1/generate one result plus its receipt
- GET /api/v1/replay/{token} recompute a past result, bit-for-bit
A replay against a generator whose version has moved on answers 409 version_changed rather than quietly returning something different. Honest failure beats a silently different answer.