RNG Battle Arena
Enter items and watch them battle in a randomized tournament bracket with animated fights. Share results, vote, and settle any This-vs-That debate with pure RNG.
About
Decision paralysis costs time. When two or more options carry equal weight, rational analysis fails and you need an external tiebreaker. This tool uses crypto.getRandomValues() - the same cryptographic entropy source used in security applications - to run a single-elimination tournament bracket across n items you provide. Each matchup is resolved by sampling a uniform distribution over [0, 1), meaning no item has a statistical advantage. The bracket structure ensures exactly n − 1 rounds are played, and every elimination is visualized as an animated particle collision on a Canvas element. Results are persisted locally so you can track historical outcomes, upvote community brawls, and detect if your RNG has any streaks worth noting. Note: this tool approximates "fairness" under the assumption that the browser's crypto RNG is unbiased - which holds for all modern implementations, but edge cases exist on outdated or compromised systems.
Formulas
The probability that a specific item wins a single-elimination tournament of n items, assuming uniform random selection at each matchup:
The total number of matchups (rounds fought) in a single-elimination bracket:
The number of bracket rounds (depth of the tournament tree):
Fisher-Yates shuffle ensures unbiased permutation. For each position i from n − 1 down to 1, swap element at i with a uniformly random element from [0, i]:
The vote score uses Reddit-style aggregation:
Where vi ∈ {−1, 0, +1} for each user. n = total items in the brawl. M = total matchups played. R = bracket depth (number of elimination rounds). S = net community score.
Reference Data
| RNG Method | Entropy Source | Bias Risk | Speed | Use Case |
|---|---|---|---|---|
| Math.random() | PRNG (xorshift128+) | Low but non-zero | ~50ns | Games, non-critical |
| crypto.getRandomValues() | OS entropy pool | Negligible | ~200ns | Cryptography, fair selection |
| Hardware RNG (HRNG) | Thermal noise / quantum | None (physical) | Variable | Key generation, lotteries |
| Linear Congruential | Seed-based formula | High (periodic) | ~10ns | Legacy systems |
| Mersenne Twister | Seed-based (MT19937) | Low but predictable | ~30ns | Simulations, Monte Carlo |
| Atmospheric Noise | Radio static | None (physical) | ~500ms (network) | Random.org, audited draws |
| Lava Lamp Wall | Chaotic fluid dynamics | None (physical) | Variable | Cloudflare TLS seeds |
| Radioactive Decay | Quantum events | None (quantum) | Variable | Research, national lotteries |
| Fisher-Yates Shuffle | Depends on RNG source | Inherits source bias | O(n) | Unbiased permutation generation |
| Rejection Sampling | Any uniform source | Eliminates modulo bias | 1.5× base | Uniform range from power-of-2 source |
| Von Neumann Extractor | Biased coin flips | Removes known bias | ~25% throughput | Debiasing weak sources |
| Fortuna PRNG | Multiple entropy pools | Negligible | High | FreeBSD, macOS /dev/random |