The RandZen Editorial Team

The RandZen Editorial Team is the group behind RandZen, a random number and dice generator. The tool and the writing are maintained side by side, so an article and the behaviour it describes stay in step.

The subject matter is deliberately narrow — Random Number Generation. Because it draws cryptographically secure random numbers, integers and dice rolls within a range you set, the articles can go a level deeper than a general overview, whether the reader arrives from picking a winner fairly, rolling tabletop dice or drawing a random sample from a list.

Articles are reviewed for two failure modes: a method that does not reproduce, and phrasing that could be taken as advice. Topics that drift into regulated territory stay on the numeric side, with a pointer to a qualified professional.

Corrections are applied to the page, not buried in an inbox. Errors can be reported to support@randzen.com, which goes to the people who wrote the piece.

Recent articles

CSPRNG implementation guide: Generating cryptographically secure random tokens entirely in the browser
According to a 2023 survey of over 4,200 web developers, a staggering 92% admitted to using Math.random() when generating tokens, passwords, or session identifiers on the client side.
Scaling JavaScript PRNGs: Pushing millions of Monte Carlo iterations without blocking the main thread
You've built a sleek browser-based tool for pricing options using Monte Carlo simulation. The interface is clean. The inputs are wired up.
Web Crypto API overhead: Measuring the exact latency drop when replacing Math.random()
On the left side of your screen, a single call to Math.random() executes in roughly 0.0003 milliseconds.
Secure client-side random range generation: Avoiding modulo bias in JavaScript bounded intervals
You've built a client-side raffle tool. Ten thousand entries. One winner. The code looks clean: crypto.getRandomValues(new Uint8Array(1))[0] % 10000 .
Cross-platform procedural generation: Why your deterministic seeds break across Unity, Unreal, and JS
You pushed the build at 2 a.m. The Unity client on your laptop generated a tidy village from seed 0x4E1A7C .
Crypto.getRandomValues() vs Math.random(): A technical performance and entropy benchmark
Quick win before we go deep — if you are building anything where a user could gain an advantage by predicting the next value, swap Math.random() for crypto.getRandomValues() in the first ten lines of your module.

Browse all articles →