Skip to content
Randomizer · Decisions

Ask the Magic 8 Ball

Type a yes/no question, shake the ball, and get an instant answer from the classic 20-response set. Runs entirely in your browser — nothing is uploaded or logged.

In-browser only 20 canonical responses crypto.getRandomValues()
0 / 500
8
Nothing leaves your browser. No questions are stored or transmitted.
Copied to clipboard

Guide

How to use the Magic 8 Ball

  1. 1
    Type your question

    Enter a yes/no question in the text field above the ball. The question is displayed for your reference but does not affect the result.

  2. 2
    Shake the ball

    Click or tap the ball itself, or press the Shake button. On mobile with motion permission, physically shaking your device works too.

  3. 3
    Read the answer

    After the shake animation completes, the blue triangle window reveals one of the 20 canonical responses, grouped as affirmative, non-committal, or negative.

  4. 4
    Copy or share

    Use the Copy button to place the answer on your clipboard. Your last 10 answers appear in the History tab.

  5. 5
    Ask again

    Each shake selects uniformly at random from all 20 responses — no weighting, no patterns. Shake as many times as you like.

  6. 6
    Optional sound

    Toggle the speaker icon to enable a subtle shake sound effect. Sound is always muted by default and never auto-plays.

Frequently asked questions

What is a Magic 8 Ball?
The Magic 8 Ball is a novelty toy introduced by Mattel in 1950. It consists of a black ball containing a 20-sided die floating in blue liquid — each face engraved with one of 20 responses. You ask a yes/no question, shake the ball, and a face surfaces in the small window. This tool replicates that experience entirely in your browser.
Is the selection truly random?
Each shake selects uniformly at random from all 20 responses using crypto.getRandomValues() with rejection sampling. There is no weighting, bias, or pattern — over many shakes each response should appear approximately 5% of the time. The selection is independent of your question text.
Why are there 10 affirmative responses but only 5 negative?
That is the original distribution from Mattel's physical toy. Out of 20 responses, 10 are positive, 5 are non-committal, and 5 are negative — giving the ball a statistical bias toward favorable outcomes. This tool preserves the original set exactly.
Is my question stored or sent anywhere?
No. The question field is purely local — it is never transmitted, logged, or included in any analytics payload. All processing happens client-side. The history tab stores your recent answers in memory only and clears on page reload; nothing is written to local storage.
Does it work offline?
After the initial page load, the tool works fully offline. All 20 responses and the randomization logic are embedded in the page — no server communication is needed to shake the ball.
Can I embed this on my own site?
An iframe embed is available. Append ?embed=1 to the page URL and the tool renders without site chrome — showing only the ball, question input, and controls. Recommended dimensions are 480 × 560 px, though the layout adapts to any size.
Does shaking my phone trigger the ball?
On supported Android devices it works automatically. On iOS 13+, the DeviceMotion API requires an explicit permission grant — after your first tap, a prompt asks whether to enable physical shaking. If you decline, the button and tap-to-shake interaction continue to work normally.