Skip to content
AZ Tools

Magic 8-Ball

Type a yes/no question, shake the ball, get one of 20 classic answers — or swap in your own pool. Pure randomness, no judgement.

How to use

  1. Type a yes/no question and hit Ask (or Enter).
  2. Wait for the brief shake — the answer materializes in the inner window.
  3. Paste your own list of answers below and toggle the custom pool to override the classic 20.

About this tool

Show

The classic shake-and-flip toy turned into a browser widget. Each shake picks uniformly from a 20-answer pool (the same 10 positive, 5 neutral, 5 negative answers the Mattel toy uses) via crypto.getRandomValues. Swap in your own answer list for an in-joke version, or for decision-making with a controlled vocabulary. The last 20 questions and answers stay in history so you can argue about which way the ball was leaning today.

The pool is deliberately lopsided. Ten of the twenty answers are affirmative and only five are negative, so a fair draw still says yes half the time and no a quarter of the time. That is not a quirk of this implementation; it is how the toy has always been weighted, and it is a large part of why people remember it as encouraging. Replacing the list with your own options makes every entry equally likely, which is a different game.

Randomness comes from the browser's cryptographic generator rather than Math.random, so a run of five identical answers is genuine chance rather than a stuck sequence. Streaks like that are much more common than intuition allows: with twenty options, any specific answer repeating twice in a row happens once in twenty shakes. The history list exists partly so you can see that for yourself.

Each shake is independent. Asking the same question again does not refine anything, and the toy has no memory of what it said a moment ago, which is the difference between this and the tie-breaking tools that draw without replacement.

The genuinely useful version of this is the custom list. Replacing the twenty stock phrases with a real set of options turns it into a uniform picker with a fixed vocabulary, which is a reasonable way to break a deadlock when every choice is acceptable and nobody wants to be the one who decided.

Frequently asked questions

Is it actually random?

Yes — picks come from crypto.getRandomValues, the same CSPRNG browsers use for crypto keys. The shake animation is purely visual; the answer is locked the instant you hit Ask.

Why are answers color-coded?

The classic 20 split into 10 positive, 5 neutral, 5 negative. The ball's background tints to match so a glance tells you the verdict before reading.

Why does the same answer keep coming back?

Because each shake is independent and the pool has twenty entries, so a repeat within a few shakes is ordinary rather than a sign of a stuck ball — the chance that two consecutive shakes match is one in twenty. Independence also means the toy has no memory of your previous questions, which is exactly the property that makes it useless as an oracle and fine as a tie-breaker.

What makes a custom answer list work well?

Keep the options short enough to read in one glance and make sure every one of them is an answer you would actually accept, since the point of handing a decision to a random pool is to stop relitigating it afterwards. If some outcomes should be rarer than others, repeat the common ones — every line has the same chance, so frequency comes from how often a line appears.

Related tools