ルーレット — 項目を入れて回す抽選ツール
重み付け・リスト保存・共有リンクに対応したルーレット
ブラウザー内で処理・アップロード不要
行末に「ラーメン*3」や「ラーメン x3」のように重みを書けます。書かなければ1で、大きいほど出やすくなります。(1〜1000、最大100項目)
6項目
結果
まだ回していません。
保存したリスト
保存したリストはありません。保存先はこのブラウザーだけです。
リンクには項目と重みが含まれます。開くと同じルーレットが表示されます。
ルーレットツールとは
ランチのお店、発表の順番、罰ゲーム、景品、先攻後攻など、たくさんの選択肢から1つを選ぶためのルーレットです。1行に1項目ずつ入力するとすぐにルーレットが描かれ、「回す」を押すと数秒かけて減速し、どれかの扇形で止まります。項目に重みを付けて出やすさを変えたり、当選した項目を外して次は別の項目が出るようにしたりできます。よく使うリストは名前を付けて保存したり、リンクで送ったりできます。処理はすべてブラウザー内で行います。
使い方
- 欄に項目を1行に1つずつ入力します(カンマや読点でも区切れます)。最初はサンプルのリストが入っています。
- 出やすくしたい項目には、
ラーメン*3のように重みを付けます。 - 配色をビビッド・パステル・モノクロから選びます。
- 回すを押します。ルーレットが止まると、結果とその項目の確率が表示されます。
- 「当たった項目を次から外す」をオンにすると、重複なしでリストを順に消化でき、順番決めに便利です。終わったら元のリストに戻すで元に戻せます。回転中は、表示と結果が必ず一致するよう、保存したリストの読み込みや削除はできません。
- リスト名を入力して現在のリストを保存を押すと後で呼び出せます。共有リンクを作成を使えば、同じルーレットを相手に送れます。
仕組み
- 項目のルール:改行・カンマ・読点で項目を区切り、前後の空白は取り除きます。回すには2〜100項目が必要です。
- 重み:1〜1000の整数です。0、1000を超える値、小数(1.5など)を書いた行は無効として除外し、どの行かを表示します。
- 確率:各項目の確率は、その重みを重みの合計で割った値です。乱数は
crypto.getRandomValuesからモジュロバイアスなしで取得し、Math.randomは使いません。 - 角度の計算:針は上に固定され、ルーレットは時計回りに回ります。当選項目が決まると、その扇形の中の位置をランダムに選び、5〜7回転を加えてその位置が針の下に来るようにします。
- 保存:リストは名前と項目のテキストとしてローカルストレージに保存します。共有リンクには重みも同じ
*数値の形で含まれます。
例
| 入力 | 意味 | 確率 |
|---|---|---|
| ラーメン / 寿司 / カレー | 重みなし | それぞれ33.3% |
| ラーメン*3 / うどん | ラーメンの重みが3 | ラーメン75%、うどん25% |
| 翔太 x2、美咲、大輝 | 翔太は2倍 | 翔太50%、美咲25%、大輝25% |
| ハズレ*9 / 当たり | 当たりが少ないルーレット | 当たり10% |
よくある質問
ルーレットは必ず発表された項目の位置で止まりますか?
はい。先に乱数で当選項目を決め、その項目の扇形の中で、両端から10%以上離れた角度までルーレットを回します。針の下にある扇形がそのまま結果で、回転の動きは演出です。
重みはどう使いますか?
行末に「ラーメン*3」や「ラーメン x3」のように数字を書きます。数字がなければ1で、重みは1〜1000の整数です。ラーメンが3、うどんが1なら、ラーメンは4回に3回の割合で出て、ルーレット上でもその割合の面積を占めます。当選した項目の確率は結果の下に表示されます。
共有リンクには何が含まれますか?
「共有リンクを作成」を押すと、項目と重みがアドレスの#より後ろに入ります。#以降はサーバーに送信されませんが、リンクを受け取った人は誰でも読めます。開くと同じルーレットが表示されますが、回した結果は含まれません。ボタンを押すまでアドレスは変わりません。カンマは項目の区切りになるので、項目名にカンマを入れないでください。
保存したリストはどこに保存されますか?
この端末のブラウザーのローカルストレージです。アップロードはしません。名前を付けて最大20個まで保存でき、同じ名前で保存すると上書きされます。ブラウザーがストレージをブロックしている場合はお知らせが表示されますが、ルーレット自体は使えます。
音や動きをオフにできますか?
音は最初からオフです。オンにすると、ルーレットが止まるときに短い効果音だけが鳴ります。端末で視差効果を減らす設定にしている場合は、回転アニメーションを省略してすぐに結果を表示します。