👥 チーム分け(レベル・学年で均等化)
メンバー名を貼り付けるだけで、チームごとの合計レベルがなるべくそろうように均等にチーム分けします。スポーツ・ゲーム・グループワーク・班決め・席替えに。
入力
結果
メンバーを入力して「チームに分ける」を押してください。
※ 合計レベルは「なるべくそろえる」もので、完全に同一になるとは限りません。最終的な調整は主催者の判断で行ってください。名前は外部に送信されず、すべてブラウザ内で処理されます。
解説
スポーツやゲーム、グループワークで「なるべく実力がそろうようにチームを分けたい」というのはよくある悩みです。人数だけを合わせても、上手な人が片方に偏ると試合になりません。本ツールは、メンバー名を貼り付けるだけで人数を均等にしつつ、各人のレベルや学年(数字)を加味して、チームごとの合計レベルがなるべくそろうように自動でチーム分けします。
レベルの均等化には「スネークドラフト(蛇行)」という方法を使います。まずメンバーをレベルの高い順に並べ、チームに1人ずつ配る向きを 1→2→3、3→2→1、1→2→3… と折り返しながら割り当てます。強い人と弱い人が交互に各チームへ行き渡るため、人数の差は最大でも1人に収まり、合計レベルも自然と近づきます。レベルを書いていない人がいる場合は、指定された人たちの平均値(四捨五入)で補ってから均等化します。誰もレベルを書かなかったときは全員同じ扱いになり、人数だけを均等にします。
分け方の乱数には、ブラウザに備わった暗号学的乱数(crypto.getRandomValues)を使い、剰余のかたよりを取り除く処理(リジェクションサンプリング)を入れています。よくある Math.random は使っていません。同じレベルの人どうしの並び順もこの乱数でシャッフルしてから配るので、毎回かたよりなく公平に分かれます。
処理はすべてあなたのブラウザ内で完結します。入力した名前やレベルがサーバーや外部に送信されることはありません。名簿をそのまま貼り付けても、個人情報が外に出る心配なく使えます。オフラインでも動作します。
用途はさまざまです。フットサルやバスケなどのスポーツのチーム分け、ボードゲームや対戦ゲームの組分け、学校や研修のグループワーク・班決め、席替えのグループ作りなどに使えます。レベルの代わりに学年や経験年数、テストの点数などの数字を入れれば、その値がそろうように分けることもできます。
合計レベルは「なるべくそろえる」もので、必ずしも完全に同一の値になるわけではありません。あくまで公平なチーム分けを素早く作るための補助ツールとして使い、最終的な人選や微調整は主催者の判断で行ってください。
よくある質問
レベルはどうやって入力しますか?
名前の後ろに半角スペースかカンマ(読点でも可)を挟んで数字を書きます。例えば「田中 5」「佐藤,3」のように書くと、5 や 3 をその人のレベルとして扱います。整数だけでなく小数も使えます。数字を書かなかった人は、レベルを指定した人たちの平均値(四捨五入)で自動的に補われます。学年・経験年数・持ち点など、そろえたい数字なら何でも入れられます。
レベルを加味しない、完全ランダムのチーム分けもできますか?
できます。「レベルを加味する」のチェックを外すと、レベルの数字を無視して全員を暗号学的乱数でシャッフルし、人数だけが均等になるようにランダムで分けます。誰のレベルも入力していない場合も、自動的に人数のみの均等化になります。
人数がチーム数で割り切れないときはどうなりますか?
割り切れない分は、先頭のチームから順に1人ずつ多く配られます。そのため各チームの人数の差は最大でも1人に収まります。例えば7人を3チームに分けると、3人・2人・2人のように分かれます。
各チームの合計レベルは完全に同じになりますか?
いいえ。合計レベルはできるだけ近づけますが、完全に同一になることは保証していません。メンバーのレベルの組み合わせによっては、どう分けても差が残ることがあります。スネークドラフトで差を小さく抑えたうえで、最後の微調整は主催者が行う前提の補助ツールとお考えください。
入力した名前は外部に送られますか?
送られません。パースも乱数によるチーム分けも、すべてあなたのブラウザ内だけで処理します。名前やレベルがサーバーや第三者に送信されることはなく、オフラインでも利用できます。
結果が気に入らないとき、引き直しはできますか?
できます。「もう一度シャッフル」ボタンを押すと、同じメンバーと設定のまま、乱数を引き直して別のチーム分けをやり直します。納得のいく組み合わせになるまで何度でも引き直せます。結果は「結果をコピー」でテキストとして控えられるほか、「テキストで保存」でtxtファイルとしてダウンロードもできます。