重複を除いた候補: 5件
候補は1,000件、1件100文字・2,000コード単位、入力全体100,000コード単位までです。表示できる文字を含め、同名の人には区別できる補足を付けてください。
重複を除いた5件から、同じ候補を重ねずに抽選します。
候補リストから重複なしで指定件数を抽選。Web Crypto APIの乱数、重複行の整理、最大1,000件の入力に対応。
重複を除いた候補: 5件
候補は1,000件、1件100文字・2,000コード単位、入力全体100,000コード単位までです。表示できる文字を含め、同名の人には区別できる補足を付けてください。
重複を除いた5件から、同じ候補を重ねずに抽選します。
改行で区切った候補から、指定した件数を重複なしで選ぶブラウザツールです。懇親会の景品、発表順、日常の当番など、記録や第三者監査を必要としないカジュアルな抽選に利用できます。
前後の空白を除いた後にまったく同じ文字列となる行は1候補にまとめます。表示できる文字を含まない行や、制御文字・表示順を変える文字を含む名前は抽選へ使いません。同姓同名の別人を区別したい場合は「山田(営業)」のように識別情報を加えてください。
乱数はブラウザの crypto.getRandomValues() から32ビット整数として取得し、棄却サンプリングで範囲へ偏りなく割り当てます。その整数を Durstenfeld 版 Fisher-Yates シャッフルの各交換位置に使い、並べ替え後の先頭から指定件数を表示します。
この実装は候補の入力順を特別扱いしませんが、物理くじとの同一性、第三者監査済みの公平性、結果の保存や再現性は保証しません。法令・規約・監査証跡が必要な懸賞、賞金、入試、採用などには、要件に合う独立した抽選手続きと記録を用意してください。
候補リストまたは抽選数を変更すると、条件が違う古い結果は消去されます。抽選は候補1,000行まで、1行100文字かつ2,000コード単位まで、入力全体100,000コード単位までです。
重複を除いたN件からK件を重複なしで選ぶとき、各候補が今回の当選者に含まれる確率はK/Nです。たとえば、30件から3件を選ぶ場合は各候補10%です。
これは実装した乱数源と割り当て処理が意図どおり動くことを前提にした理論上の確率です。1回の結果が均等に見えることや、短い回数で各候補の当選数が揃うことを意味しません。
本ツールは当選候補を一次元の順序で表示します。教室や会議室の席を二次元に配置し、固定席や隣席条件を設定したい場合は、専用の席替え・座席表作成ツールをご利用ください。
ガチャ確率の数学 — 「3%を33連で当たる確率」は63%しかない理由と天井の意味
「排出率 3% なら 33 連で 1 個出るはず」 ― この感覚、 数学的には外れています。 33 連で当たらない人は 36.6% もいて、 50% の確率に達するには 23 連、 90% には 76 連、 99% には 152 連必要です。 ガチャの確率公式 P=1−(1−p)ⁿ、 期待値、 二項分布、 天井 (pity) の意味、 そして景表法で課徴金になった「3% 表記で実は 0.333%」 事案まで、 全数値を Node.js で再計算しながら整理します。
Fisher-Yates シャッフル — くじ引きで偏りを避ける並び替えアルゴリズム
「配列をランダムに並び替える」コードを書くとき、`arr.sort(() => Math.random() - 0.5)` と書いていませんか? 実はこれは偏ります。1938 年 Fisher & Yates の統計学テーブルから始まり、1964 年 Durstenfeld が線形時間化、1969 年 Knuth が TAOCP で標準化 — 公平なシャッフルの正解アルゴリズムを一次資料で整理します。
Mersenne Twister 1998 — 日本発の疑似乱数アルゴリズムと用途上の注意
Python の random、C++ の <random>、PHP の mt_rand、R など多くの実装で使われてきた「メルセンヌ・ツイスタ」(松本眞・西村拓士 1998)。周期 2^19937-1を持つ広島大学発の疑似乱数アルゴリズムを一次資料で読み解きます。