ルーレット

1 行に 1 名ずつ書いて回すと、ルーレットが誰かの上で止まります。どの区画も確率はきっちり同じで、同じ名前を二度書けば札を二枚持つのと同じです。名簿はこのブラウザーの中に留まり、抽選の内容がどこかへ送られることはありません。

1 行に 1 名を書いて回してください。当たりは回す強さではなく、公正なくじで決まります。

当たりは、転盤が回り始める前にブラウザーの暗号用乱数源から引いてあります。そのうえで、その区画に止まるように回しています。順序が逆に思えますが、こちらが誠実なやり方です。もし結果がアニメーションのたまたま止まった位置から決まるなら、見た目の等しい区画が等しい確率ではなくなり、描画の丸めが当落を決めてしまいます。ここではどの区画も確率はきっちり同じで、同じ名前を二度書けば、その人に二枚の札を渡したことになります。

近い道具: ランダムに選ぶ, 乱数ジェネレーター, コイントス, パスワード生成

使い方

  1. 枠に名前を 1 行ずつ書きます。入力に合わせてルーレットが描き直されます。
  2. 「回す」を押します。ルーレットそのものをクリックしても回ります。約 4 秒回って、矢印の指す名前で止まります。
  3. 何回かに分けて抽選するときは「当たった人を一覧から外す」にチェックを入れてください。回すたびに外れるので、同じ人が二度当たりません。
  4. 「並べ替える」は抽選せずに順番だけを入れ替えます。勝者を決めるのではなく発表順を決めたいときに使えます。

知っておくと便利

当たりはルーレットが回り始める前に決まっている

順序が逆に思えますが、こちらが誠実なやり方です。まずブラウザーの暗号用乱数源で抽選し、そのうえでその区画に止まるように回しています。逆に、アニメーションがたまたま止まった位置から結果を取ると、見た目の等しい区画が等しい確率ではなくなります。描画の丸めや画面のリフレッシュレートが、静かに天秤を傾けてしまうからです。この順序なら、絵は結果を見せるためのものであって、結果を作るものではありません。名前が 3 つでも 200 でも、確率はどれも同じです。

同じ名前を二度書けば札は二枚

重複した行はわざと残しています。福引券を二枚買った人がいるとき、あるいはあるチームを二人分と数えるときは、名前を二度書けばルーレットにその名前の区画が二つ現れます。重み付き抽選をいちばん簡単に、しかも正直にやる方法で、しかも重みが目に見えます。ルーレットを見ている人は区画を数えて自分で確かめられます。隠れた倍率ではこうはいきません。

名簿はブラウザーから出ない

児童・生徒、社員、顧客の名前はごく普通の個人データで、外へ出す理由がありません。名簿は再読み込みしても残るようにこのブラウザーのローカルストレージに置いてあります。サーバーへ送らず、端末間で共有せず、こちらからも見えません。ブラウザーのデータを消せば消えます。ページ自体はネットを切っても動きます。Wi-Fi を切ってもう一度回してみれば確かめられます。

よくある質問

抽選は本当にランダムですか。

はい。回すたびに crypto.getRandomValues から数を取ります。鍵やセッショントークンを作るのと同じ、ブラウザーの暗号用乱数源です。範囲の端に落ちた値は折り返さずに捨てるので、先頭の名前が多く出ることもありません。名前を繰り返して自分で付けた重み以外の重み付けはありません。

特定の名前を当たりやすくできますか。

その名前を複数回書いてください。同じ行が二つあれば全体のうち二区画になり、ルーレット上でもそう見えます。重みが設定の中に隠れず、見ている全員に見えるということです。

名前は何人まで入りますか。

最大 200 名です。40 名を超えたあたりから文字が短くなり、ひと目では読めなくなりますが、抽選の公平さは変わりません。絵ではなく答えだけが必要なら、ふつうの一覧から選ぶほうが読みやすいでしょう。

名簿はどこかに保存されますか。

このブラウザーの中だけです。再読み込みしても残るようにするためで、サーバーへは送らず、別の端末や同じパソコンの別のブラウザーとも共有しません。サイトのデータを消せばなくなります。

本物の景品抽選に使えますか。

使えますし、公開の抽選を納得のいく形にするのは、箱よりルーレットのほうが簡単です。回す前に名簿を確定し、みんなが区画を数えられるように共有画面に映し、あとで結果を説明する必要があるなら画面を録画しておいてください。

関連ツール