抽選ツール|候補からランダムに当選者を選ぶ
空白行と、前後の空白を除いて完全一致する重複候補は除外します。
1~1,000件を指定できます。有効な候補数以下にしてください。
候補を1行に1件ずつ入力し、当選件数を指定してください。
このツールでできること
改行で区切った候補から、指定した件数をランダムに抽選できます。当選結果は重複せず、まとめてコピーできます。
使い方
- 抽選候補を1行に1件ずつ入力します。
- 当選件数を指定します。
- 「抽選する」を押します。
- 結果を確認し、必要に応じて「結果をコピー」を押します。
入力例・出力例
候補へ次の3件を入力し、当選件数を2にします。
赤
青
緑
抽選結果の一例は次のとおりです。
青
赤
3候補から重複なしで2件を当選順に表示します。表示は抽選結果の一例です。
同じ候補を複数行に入力しても、前後空白を除いた完全一致が同じなら1候補として抽選します。
よくある利用場面
- 名前や番号の一覧から当選者を重複なしで選ぶとき
- 発表順や担当候補をランダムに抽出するとき
- 多くの候補から最大1,000件をまとめて抽選するとき
抽選方法と利用上の注意
前後空白の除去後に重複していない各候補を、同じ重みで扱います。同じ候補を複数行へ入力しても当選確率は増えません。候補ごとの重み付けには対応していません。
当選件数の上限は1,000件です。これは候補数の上限ではありません。当選件数は、前後空白と重複を除いた有効候補数以下にする必要があります。有効候補をすべて当選させた場合は、全候補が選ばれて順序だけがランダムになります。
同じ条件で再抽選しても、前回と同じ結果や順序になる場合があります。このツールはシード、抽選履歴、当選済み候補の継続除外、監査ログを保存しないため、結果を後から再現したり、抽選過程を証明したりはできません。記録や第三者による検証が必要な抽選では、用途に合った仕組みを使用し、候補一覧と結果を別途記録してください。
処理仕様
LF、CRLF、CRの改行を行区切りとして扱います。各行の前後にある空白と空白行を除き、完全一致する重複候補は最初の1件だけを残します。大文字・小文字、全角・半角、内部の空白、Unicode表現が異なる候補は別の候補として扱います。
当選件数は半角数字の1~1,000件で、有効な候補数以下にしてください。Web Crypto APIのcrypto.getRandomValues()、偏りを避ける棄却法、部分Fisher–Yates方式を使い、候補から重複なしで抽選します。Web Crypto APIが利用できない場合や乱数取得に失敗した場合は、途中結果を表示せず、Math.random()へも切り替えません。
結果は当選順に1行1件、LF改行・末尾改行なしで表示します。候補や当選件数を変更すると以前の結果は消去されます。候補に含まれるHTML風文字列、HTMLエンティティ、引用符、バックスラッシュを独自に解釈、復号、置換しません。
入力データについて
入力した候補と抽選結果はブラウザ内だけで処理し、ToolRollのサーバーや外部サービスへ送信しません。外部ライブラリ、Cookie、Web Storage、IndexedDBを使用せず、このツール自身は入力、結果、抽選履歴を保存しません。
「結果をコピー」を押したときだけ、表示中の当選結果をブラウザのClipboard APIへ渡します。