ランダムチーム分け(グループ作成ツール)
名前リストを貼り付けるだけで、チーム数または1チームあたりの人数を指定し、暗号学的シャッフルで公平なランダムチームに分割。結果はワンクリックでコピーできます。
1,248回閲覧
少なくとも2人と有効な数値を入力してください。
ワンクリックで公平なチーム分け
1行に1つの名前を貼り付け、何チームに分けるかまたは1チームあたり何人にするかを選んで分割します。人数が均等に割り切れない場合、余った人は先頭のチームから1人ずつ振り分けられ、特定の1チームにすべての余りを押し付けることはありません。これは、完全に均等な答えが存在しない端数を処理するもっとも公平な方法です。
クラス分け、5人制サッカー、プロジェクトグループ、クイズの夜、当番表など、何度でも再分割して、結果をコピーして共有できます。
シャッフルの仕組み
リストを公平に分割することは、突き詰めれば「起こりうるすべての並び方が等確率で起こるか」という1つの問いに集約されます。このツールはFisher-Yatesシャッフルというアルゴリズムを使用しています。これは意外なほど長い歴史を持つ手法で、1938年に統計学者ロナルド・フィッシャーとフランク・イェーツが、統計表の行をランダム化するための鉛筆と紙による手作業の手順として初めて記述したものです。1964年にリチャード・ダーステンフェルドが、これを今日使われている効率的でコンピュータ向きの形に改良しました。この版は、リストを一度だけ走査し、各要素をまだシャッフルされていない残りの部分からランダムに選んだ要素と入れ替えることで、線形時間で動作します。後にドナルド・クヌースが著書『The Art of Computer Programming』でこの版を広めたことから、クヌースシャッフルと呼ばれることもあります。
乱数そのものは、高速だが予測への耐性を目的として設計されていないMath.randomではなく、抽選ツールと同じくブラウザの暗号学的に安全な乱数源であるcrypto.getRandomValuesから生成されます。正しさという点でも注意が必要です。たとえば、まだシャッフルされていない残りの部分だけでなく、リスト全体から毎回スワップ位置をランダムに選ぶような素朴なシャッフルは、気づかないうちに統計的な偏りを生み出します。一部の最終的な並び方が他よりも起こりやすくなってしまうのです。これは、直感とは異なる確率になる誕生日のパラドックスと似た性質を持つ、見えにくい効果です。正しく実装されたFisher-Yatesシャッフルでは、各ステップでまだ配置されていない要素の中からのみ均等に選ぶため、起こりうるすべての並び方が等確率になります。
- 目標チーム数と目標チーム人数のどちらでも分割方法を選べます — 状況に応じて重要な方の数値を指定してください。
- 再分割すると、新しい乱数でシャッフルが最初からやり直されるため、前回の並びを単に並べ替えたものではなく、本当に新しい組み合わせが生成されます。
- 名前の分割処理はすべてブラウザ内で完結し、どこにも送信されないため、非公開のクラス名簿やチーム名簿にも使用できます。
よくある質問
リストが均等に割り切れない場合はどうなりますか?
余った人はチーム1から始めて1人ずつ振り分けられます——11人を3チームに分けると4-4-3になり、5-3-3にはなりません。
分割は本当にランダムですか?
はい——ブラウザの暗号学的な乱数源であるcrypto.getRandomValuesによる偏りのないFisher-Yatesシャッフルです。再分割するたびに本当に新しい組み合わせが生成されます。
特定の2人を離す、または一緒にすることはできますか?
自動ではできません——分割後、必要ならペアを手動で入れ替えてください。条件付き分割は今後のアイデアリストに入っています。
Fisher-Yatesシャッフルはどこから来たのですか?
1938年にロナルド・フィッシャーとフランク・イェーツによって、統計のための手作業のシャッフル手順として初めて記述されました。1964年にリチャード・ダーステンフェルドが、これを今日使われている効率的なコンピュータ向けアルゴリズムに改良し、後にドナルド・クヌースによって広められたことから、クヌースシャッフルとも呼ばれます。
なぜもっと単純なランダムシャッフルを使わないのですか?
リスト全体から毎回スワップ位置を選ぶような素朴な方法は、まだシャッフルされていない残りの部分だけから選ぶ場合と異なり、気づかないうちに一部の最終的な並び方を他よりも起こりやすくしてしまいます。正しく実装されたFisher-Yatesシャッフルは、各スワップをまだ配置されていない要素の中からのみ選ぶため、起こりうるすべての並び方が等確率になります。
関連ツール
問題を報告
ランダムチーム分け(グループ作成ツール)
コメント
まだコメントはありません — 最初のコメントを書いてみましょう!