How our fair draw chooses a verse
A plain-language look at the cryptographic randomness, rejection sampling and no-repeat memory behind every reveal.
By Random Verse Editorial ·

When you press Reveal a verse, a small, careful process runs in your browser. It takes less than a millisecond, but each step exists for a reason.
Starting with a curated library
Every verse lives in a hand-tagged library. Each entry carries its reference, its King James text, the testament it belongs to and one or more themes. Filtering by Peace or New Testament simply narrows that list to a pool of candidates.
Why ordinary randomness isn’t enough
Many websites use Math.random(), which is fast but not designed to be unpredictable. We use crypto.getRandomValues, the same source browsers use for security. It produces 32-bit numbers that are, for all practical purposes, impossible to predict.
A gentle memory
Randomness can repeat itself. To avoid seeing the same passage twice in quick succession, recently shown verses are held back. The size of that window adapts to the pool: never more than twelve verses, and never more than half of the pool, so small themes still feel varied.
Watch it happen
The interactive diagram on the home page shows each stage live — the library, the filter, the memory, the draw, the typesetting and the sharing options. Press Step through to move one stage at a time.
Ready for a verse of your own?