Loaded Dice Analyzer
Enter a sequence of integers and discover whether the data is consistent with a random process.
Skip to AppAbout this analyzer — four statistical tests
This app applies up to four complementary statistical tests to a sequence of integers you provide. Each test probes a different aspect of how the data behaves — together they give a more complete picture than any single test alone.
Chi-square goodness-of-fit checks whether the frequencies of each integer value are consistent with a uniform distribution. It cannot detect ordering problems, but it will flag badly biased counts.
Runs test checks whether the order of values looks random. Values are split into Low (≤ midpoint) and High (> midpoint) groups; consecutive blocks of the same label are counted. Too few runs suggest clustering; too many suggest forced alternation.
Autocorrelation lag-1 measures the linear relationship between consecutive values — specifically, whether knowing one value helps predict the next. A significant non-zero correlation is evidence of sequential dependence.
Ordered-pair frequencies (Test 4) — activated by the toggle in the Data Input panel — checks whether non-overlapping consecutive pairs (x1,x2), (x3,x4),… are uniformly distributed across all k² possible combinations. A chi-square test on the k²-cell table detects biased transition structure that marginal frequencies and run counts cannot reveal. A reliable approximation requires n ≥ 10k² (e.g., n ≥ 360 for a standard die). Results are visualized as a k×k heatmap: dark cells = rarely occurring pairs, gold cells = heavily over-represented pairs.
No test can prove a sequence is random. Tests detect evidence against a specified model of randomness — specifically, the assumption that each value is independent of all others and every possible outcome is equally likely (statisticians call this an IID uniform model: Independent, Identically Distributed, Uniform). The score (0–100) is conditional on the toggle: with Test 4 off, chi-square 30% + runs 30% + autocorrelation 25% + sample adequacy 15%; with Test 4 on, weights shift to 25% / 25% / 20% / 20% for the four tests plus 10% for sample adequacy.
Last updated:
Set the expected range of the model being tested (e.g., 1–6 for a standard die). Must cover all possible values, not just those observed in the sample. The button above highlights when pasted data falls outside the declared range.
No data loaded.
Leave Seed blank to use Math.random(). Enter an integer seed for a reproducible sequence (LCG).
Uses f(x) = 4x(1 − x), the logistic map from the Butterfly Effect app. Values scaled to [1, max].