List Randomizer
A professional-grade decision tool featuring cryptographically secure shuffling (Fisher-Yates), weighted probability logic, group generation, and biased-randomness simulations.
Enter items and hit Randomize
About
True randomness is a fundamental requirement for fair decision-making, yet standard computer randomization often falls short due to pseudo-random algorithms. This tool employs the Fisher-Yates Shuffle (also known as the Knuth Shuffle), an algorithm with O(n) time complexity that guarantees an unbiased permutation. Unlike the naive approach of sort(random - 0.5), which introduces statistical bias, our implementation ensures every possible permutation is equally likely.
For high-stakes scenarios - such as lottery drawings or legal audits - users can engage High Security Mode. This bypasses the standard CPU clock-seeded Math.random generator in favor of the window.crypto API, which derives entropy from unpredictable system noises (thermal noise, I/O interrupts), ensuring cryptographically secure results.
Formulas
The probability P of selecting an item x from a set S in a weighted system is defined by its individual weight w relative to the total weight of the set:
For the unweighted Fisher-Yates shuffle, the probability of any specific permutation Ο occurring is exactly:
Reference Data
| Method | Entropy Source | Bias Risk | Use Case |
|---|---|---|---|
| Fisher-Yates (Standard) | PRNG (Math.random) | LOW (Algorithmically Fair) | Classrooms, Games, Raffles |
| Fisher-Yates (Crypto) | CSPRNG (System Entropy) | NULL (Cryptographically Secure) | Lotteries, Audits, Security |
| Naive Sort | Comparison Jitter | HIGH (Preferential Ordering) | Prototyping Only (Avoid) |
| Weighted Probability | User Defined Mass | INTENTIONAL | Gacha, Handicaps, Marketing |