ビー玉レースルーレット

選択肢を入れるとビー玉が転がり落ちて勝者を決めます。飲み会の罰ゲームや順番決めなど、公平にひとつ選びたいときに。

使い方

  1. 参加者の名前を1行に1人ずつ入力します。
  2. 障害物のコースを選んでレースを開始します。
  3. ビーズがコースを転がり終えた結果で当選者が決まります。

詳しく知る

ランダムを「信じてもらう」のが一番難しい

くじ引きの目的は公平な結果そのものではなく、参加者全員がその結果を公平だと受け入れることです。似ているようで、この二つはまったく別の課題です。

数字だけがぽんと表示されると「操作したのでは」という疑いが残ります。だからこのツールは、ビー玉が実際に転がって落ちていく過程をそのまま見せる作りになっています。

過程が見えると結果は受け入れやすくなります。テレビの抽選会が玉の転がる様子をわざわざ長く映すのと、まったく同じ理屈です。

物理シミュレーションはシード付き乱数で動いています。当選者を先に決めてアニメーションを後付けしているのではなく、物理計算の結果そのものが当選です。

障害物の配置は結果に影響しますが、どのビー玉が有利かは走らせる前には決まっていません。同じ名簿でもう一度走らせれば、前回の結果とはまったく無関係な別のレースになります。

どんな場面で使えるか

順番決めに。発表の順番、掃除当番、ゲームの手番など、誰から始めるかを揉めずに決められます。

当選者を選ぶときにも使えます。忘年会の景品や、飲み会で「今日おごる人」を決めるときです。

話が進まないときの決着にも向きます。ランチの店選びのように全員が「どこでもいい」と言う場面で、ランダムが議論を終わらせてくれます。

組分けはチーム分け用の /teams のほうが便利ですが、少人数ならこれでも十分に足ります。

レースが終わるとシードを含む共有リンクが作れます。その場にいなかった人がリンクを開けば、同じレースが最初から再生されるので、結果だけを伝えるより話が早く済みます。

罰ゲーム決め — 飲み会や合宿の定番です。誰かが指名すると角が立つ場面ほど、機械に決めさせたほうが場の空気は軽くなります。

ランダムが不公平に感じられる瞬間

ランダムな列は必ず偏り(クラスター)を作ります。同じ人が続けて選ばれるのは異常ではなく、むしろ起きて当然のことです。

コインを20回投げると、同じ面が4回続く確率は半分を超えます。それでも人はその連続を見ると「仕組まれている」と感じてしまいます。

均等にばらけた列のほうが、本当のランダムより人間の目にはランダムらしく見えます。 音楽アプリのシャッフルに「同じアーティストを連続させない」処理が入っているのはそのためです。

連続当選が困るなら、選ばれた項目を外してもう一度回してください。 これが「非復元抽出」で、順番を決めるときにはこちらが正しい方法です。

逆に言えば、毎回全員を残したまま回す方式では偏りが出るのが当たり前です。「偏らないランダム」を求めているなら、乱数ではなく手順のほうを変える必要があります。

結果に納得してもらうための手順

ルールを先に合意します。 何人選ぶのか、引き直しはありなのか、1位を選ぶのか最下位を選ぶのか。回す前に決めておくことが要点です。

回すのは一度だけにします。 「気に入らないからもう一回」が始まった時点で、ランダムにした意味がなくなります。

全員が見ている前で回します。 結果だけをあとから伝える形では信頼は生まれません。

項目を事前に確認してもらいます。 名前の抜けや重複は、あとから必ず問題になります。

乱数はどのように作られているか

このツールは mulberry32 というシード付き疑似乱数生成器を使っています。同じシードを与えれば同じ列が出ます。

「疑似(pseudo)」とは計算で作るという意味であって、予測できるという意味ではありません。シードを知らなければ結果は分かりません。

ただし暗号学的に安全ではありません。 くじ引きには十分ですが、パスワードや鍵の生成には使えません。それは crypto.getRandomValues の領域で、/password がそちらを使っています。

計算はすべてブラウザ内で行われ、参加者の名前がサーバーへ送信されることはありません。名簿を扱う場面でも、外部に情報が出ていく経路がそもそも存在しません。

マップの選び方と自作コース

マップは5種類あり、障害物の構成がそれぞれ違います。選択欄の下に出るカオス度は「結果がどれだけ読みにくいか」の目安で、値が大きいほど跳ねと逆転が激しくなります。

迷路コースとワープコースにはワープ穴があり、順位が最後の最後で入れ替わりやすいのが特徴です。カーニバルコースはトランポリンとベルトで賑やかですが、そのぶん全員がゴールするまで時間がかかります。

「自分で作るコース」を選ぶと、ピン・壁・バンパー・回転バー・往復ピン・トランポリン・ベルト・加速板・風・ワープの10種類の部品を、最大60個まで盤に置けます。下部の漏斗とゴールラインは固定で、そこを通った順番が着順という規則は自作コースでも変わりません。

置き終わったら完走チェックを押してください。画面なしで一度走らせて、玉が詰まる配置がないかを教えてくれます。作ったコースは共有リンクにそのまま載るので、同じ盤を相手の端末で再生できます。

紙のくじとどう違うのか

紙のくじには、折り方の癖や紙の厚みで当たりが透けてしまうという古典的な弱点があります。箱の底に沈んだくじが最後まで引かれにくい、という物理的な偏りも起こります。

一方で紙のくじには「その場に物がある」という強い説得力があります。全員が同じ箱に手を入れたという事実は、画面に出た数字よりもすんなり受け入れられます。

ビー玉レースはその中間を狙っています。計算は偏りのない乱数で行いながら、目に見える物理的な過程を残すことで、紙のくじが持つ説得力を借りているわけです。

参加人数が多いとき、結果を記録に残したいとき、遠隔の参加者が混ざるときは、こちらのほうが圧倒的に扱いやすくなります。

検証できる抽選が必要なときは

金銭が絡む抽選(景品キャンペーン、住宅の割り当てなど)に、この種のウェブツールを使ってはいけません。法的な要件と、あとから監査できることが求められます。

公的な抽選では公証人の立ち会いか、シードとアルゴリズムを公開した検証可能な乱数が必要になるのが普通です。

これは友人同士の遊びと、日常の小さな意思決定のために作られたツールです。その用途には十分な精度がありますが、それ以上のことを主張するものではありません。

よくある質問

結果は公平ですか?

毎回、物理シミュレーションを新しく回すので結果はランダムです。あらかじめ決まった当選者はいません。

どんな場面で使えますか?

飲み会の支払い、発表の順番、景品の抽選など、ルーレットやくじを使っていた場面に使えます。

人数の上限はありますか?

実用上の上限はありません。人数が増えるとビーズも増え、レースが少し長くなります。

関連ツール

  • あみだくじ — 名前と結果をあみだくじでランダムにマッチングします。
  • チーム分け — 参加者をランダムかつ公平にチーム分けします。
  • 皿バランスゲーム — マウスで棒を動かし、皿を落とさずに耐えます。長く耐えた人が勝つ賭けゲーム。
  • ダーツゲーム — 本物の規格のダーツボードに投げて、01・クリケット・カウントアップで対戦します。