LuckPicker

Which Randomness Each Tool Here Uses

A tool-by-tool table of the exact draw behind every generator on this site.

Every tool on this site is built from a small number of primitives. This page lists which primitive sits behind each one, so a claim about fairness on any tool page can be traced to the mechanism that supports it.

There are five: an unbiased integer draw, a uniform float, a Fisher-Yates shuffle, a cumulative-sum weighted walk, and a constrained search. One page, and only one, uses a seeded pseudo-random generator instead.

Everything except the seeded generator draws from `crypto.getRandomValues`.

The five primitives

The unbiased integer draw takes a random byte or 32-bit value and maps it onto a range using rejection sampling, discarding the leftover values that would otherwise skew the result toward low numbers. It is the foundation of almost everything else here.

The uniform float scales a 32-bit random value into the interval from zero to one. It is used where a continuous quantity is genuinely wanted — the wheel's landing angle, the weighted walk's target, the cut points in a percentage split.

The Fisher-Yates shuffle produces a uniformly random ordering using the unbiased integer draw for each swap. The cumulative-sum walk implements weighted selection against a single uniform float. The constrained search wraps a shuffle in a validity test and retries.

  • Unbiased integer draw — rejection-sampled, no modulo bias.
  • Uniform float — a 32-bit value scaled into [0, 1).
  • Fisher-Yates shuffle — every ordering equally likely.
  • Cumulative-sum walk — weighted selection with any positive weights.
  • Constrained search — randomised restart over a shuffle, with an honest failure.

Tools built on the integer draw

The plainest group: pick one index from a list, or one number from a range. The name picker, country picker, animal picker, straw picker, yes-no picker, this-or-that picker, letter generator and emoji generator all draw a single index. The number generator, PIN generator, decimal generator, direction generator and dice roller all draw within a numeric range.

The direction generator is the one exception worth noting: it draws from eight outcomes, and eight divides 256 exactly, so no rejection is needed. Every other range on this list requires it.

The bingo caller and the lottery generator use the same draw without replacement — each result is removed from the pool, so repeats are structurally impossible rather than merely unlikely.

Tools built on shuffles

The order randomizer, team generator, deck shuffler, turn order generator, standup order picker and pair generator all produce a uniformly random ordering and then read it off in different ways — one at a time, in blocks, in pairs, or reversed on alternate rounds.

The random sample tool uses a partial shuffle, performing only as many swaps as it needs items. The round-robin generator shuffles once to set the starting order and then applies a deterministic rotation.

The playlist shuffler is a shuffle with a rule attached: it shuffles, then places greedily under an adjacency constraint. It is therefore not a uniform shuffle, which its page states directly.

Tools built on weights and constraints

The weighted picker, custom dice builder, Scattergories letter picker and the truth-or-dare deck choice all use the cumulative-sum walk. Weights are normalised, so only ratios matter and any positive value including fractions works.

The Secret Santa generator uses a derangement — a shuffle retried until no element sits in its original position. The gift exchange generator adds a forbidden-pair test to that same loop. The seating chart randomizer, chore rota assigner, lunch partner picker and seat rotation all use the same randomised-restart shape with different validity tests.

The balanced team splitter is the odd one out in this group: it is deliberately not random, using randomness only to break ties within rating bands before a deterministic snake draft.

The one page that is different

  • The random seed generator uses mulberry32, a pseudo-random generator, seeded from a hashed phrase.
  • It is the only page here that does not use crypto.getRandomValues.
  • That is deliberate: its whole purpose is that its draws can be reproduced.
  • Every other tool would be broken by that property.

How to check any of this

None of the above requires trusting the description. The tools run entirely in your browser, which means the code that performs every draw is delivered to your machine and can be read.

The practical check for any claim on this site is a frequency count. Run a tool a few thousand times and tally the outcomes; a uniform draw gives a flat table within sampling noise, and a weighted draw gives a table matching the percentages the tool printed.

The guide on auditing a random tool covers four such tests and what each one can and cannot detect.

Frequently asked questions

What random source do the tools use?

crypto.getRandomValues, on every page except the seed generator, which uses a seeded pseudo-random generator on purpose.

Which tools need rejection sampling?

Every integer draw whose range does not divide 256 exactly — which is almost all of them. The direction generator, with eight outcomes, is the exception.

Which tools are not uniform?

The weighted picker, custom dice builder, Scattergories picker and truth-or-dare deck choice are weighted by design; the playlist shuffler is constrained; the balanced team splitter is deliberately deterministic apart from tie-breaking.

Which draws are without replacement?

The bingo caller, lottery generator, random sample tool, and the no-repeat cycles in the cold-call picker, truth-or-dare and Scattergories tools.

Is any of this verifiable from outside?

Yes. Everything runs in your browser, so the code is on your machine, and a frequency count over a few thousand runs will confirm or refute any distribution claim here.

Why is the seed generator different?

Because its purpose is reproducibility, which requires a deterministic generator. Every other tool would be broken by being predictable.

Do any tools send data anywhere?

No. Every draw happens in the page, and nothing you type into any tool is transmitted.

Where is the shuffle used?

The order randomizer, team generator, deck shuffler, turn order, standup order, pair generator, sample tool and round-robin generator, plus every constrained tool as its inner loop.

Tools that use this

Related guides

← All guides