このルーレットは本当にランダムなのか

はい。あまりによく聞かれるので、お見せするためにページを一枚まるごと作りました。下ではあなた自身のトップページの盤を、百万回まわして結果がどこに落ち着くか見られます。

0

これまでのスピン

·

公平からの最大のずれ

スタートを押して、公平なルーレットが本当はどう見えるかを確かめてください。

公平なルーレットが仕組まれて見える理由

どんなに公平なルーレットでも二十回まわせば壊れて見えます。下は八項目の盤を実際にまわしたものです。二十回の時点で、最も運のよかった項目は 4 回出て、最も運の悪かった項目は 1 回しか出ていません。

盤に問題はありませんでした。単にスピンの回数がまだ足りなかっただけです。回し続ければ、同じ盤が同じコードのままひとりでにならされていきます。

20 回

差は 120%

500 回

差は 40%

20,000 回

差は 8.4%

1,000,000 回

差は 0.5%

棒は一項目ずつ、破線は均等な分かれ方です。回数が少ないと棒はその線の周りで大きく跳ねます。回数が多いと線に貼りつきます。

何を検定したか

最終実行 2026-09-08

五つの検定、それぞれ数百万回のスピン、あなたのルーレットが使っているのと同じコードに対して。どれもルーレットが不公平になりうる別々の道筋を問うています。

均等な12項目 合格

どの項目も12回に1回当たっているか

どの項目も自分の取り分の 0.18% 以内に収まった

はい か いいえ 合格

2項目だけのとき、片側が抜け出さないか

10 百万回のスピンで 50.0% / 50.0%

重み付きの項目 合格

重み1、2、3、4はその比率どおりに当たるか

10 百万回のスピンで 10.0% / 20.0% / 30.0% / 40.0%

止まる位置 合格

針は当選区画の一部を偏って選んでいないか

どの項目も自分の取り分の 0.28% 以内に収まった

記憶を持たない 合格

前回の当選は次回について何か語るか

5 百万回のスピンに規則性なし

この種の検定は落ちることしかできず、証明はできません。合格とは、五つの具体的な不公平を探しに行って見つからなかった、という意味です。

当選者の選び方

スピンを押した瞬間、ブラウザはパスワードや決済を守っているのと同じ仕組みで乱数を作ります。その数値が当選者を決めます。

これは盤が動き出す前に起きています。目に見えるのは、すでに決まった結果に向かって盤が進んでいるところです。だからクリックの強さも、場所も、押し続けた長さも結果を変えません。

const randomValues = new Uint32Array(2)
crypto.getRandomValues(randomValues)

const prizeNumber = selectWeightedIndex(
  props.segments,
  randomValues[0] / 0xFFFFFFFF
)

詳しくは、スピンごとに crypto.getRandomValues から32ビットの数値を2つ取り出します。1つ目は累積した重みをたどって当選項目を選びます。2つ目は針を当選区画の10%から90%の間に置き、境界にちょうど止まらないようにします。

さあ、回してみてください。

無料、アカウント不要。証明されるところは、いま見たとおりです。

ルーレットを作る