名簿を貼ってチーム数を決めるだけ、人数差1人以内で分けます
ランダムチーム分けは、参加者の名簿をランダムに並べ替えて、全員をもれなく複数のチームに振り分けるツールです。チーム数、または1チームの最大人数を決めると、いちばん大きいチームと小さいチームの人数差が1人を超えないように分けます。誰がどのチームになるかは「チーム分け」を押した瞬間に決まり、進行役にも事前にはわかりません。
人数をそろえるだけでは足りないときは、バランス調整を選びます。名前のあとに部署・クラス・性別などのグループを書くと、グループごとに各チームへ均等に散らばります。実力スコアを書けば、チームごとのスコア合計が近くなるように分けます。「この2人は必ず同じチーム」「この2人は別々に」という希望は条件欄に書くだけです。分ける前は席の配置にチームごとの空席が表示され、分けたあとはチームごとのグループ構成やスコア合計が棒グラフで見られます。
班分け・チーム分けをランダムにする理由
進行役が手作業でチームを決めると、どんなに気を配っても「なぜあの人たちが同じ班なのか」という声が出がちです。かといって各自に選ばせると、仲のいい人どうしで固まり、最後まで余る人が出てしまいます。ルール(チーム数・バランス調整の基準・条件)を先に伝え、全員が見ている画面で分ければ、結果に進行役の意図が入っていないことをその場で確認できます。こんな場面で使えます。
- 授業の班分け:25人のクラスを4人ずつの班にします。普段から私語が多くなりがちな2人は、別々の班にする条件をつけられます。
- 社内研修・ワークショップ:同じ部署の人ばかりだと話が広がらないので、部署をグループとして書き、班ごとにまんべんなく混ぜます。
- フットサル・ソフトボール大会:上手な人が片方に偏ると試合がつまらなくなるので、1〜5の実力スコアをつけて2チームの合計をそろえます。
- 運動会の紅白・クラス対抗:学年やクラスをグループとして書き、各チームに均等に入るようにします。
- ペア活動:1チームの最大人数を2にするとペアになります。人数が奇数だと1人が余るので、その場合はチーム数を人数の半分(端数切り捨て)にすると1組だけ3人になります。
使い方
- 名簿欄に、1行に1人ずつ名前を貼り付けます。カンマでつないで1行に書いてもかまいません。欄の上に参加人数がすぐ表示されるので、実際の人数と合っているか確かめます。
- 分け方でチーム数か1チームの最大人数を選び、数字を入力します。数字の横に「16人 → 4チーム、各チーム4人」のような予定の配分が表示され、下の席の配置にもチームごとの空席がその数だけ描かれます。
- 人数だけそろえればよいなら、バランス調整は「人数のみ」のままにします。グループや実力をそろえたいときは該当のボタンを押し、名簿の名前のあとに
/ グループまたは/ スコアを書きます。 - 必要なら同じチーム・別チームの条件を開き、1行に1組ずつ名前を書きます。リーダーが必要なら「リーダーを決める」をオンにし、みんなで見ながら盛り上げたいなら発表のしかたを選びます。「1人ずつ」はトランプを配るように1人ずつ席に着かせ、「5秒後」は5秒間名前が入れ替わってから一斉に止まり、「1チームずつ」は伏せたカードを押して1チームずつ開きます。効果音はオンにしたときだけ鳴ります。
- 「チーム分け」を押します。チーム名はカードの見出しをクリックしてその場で直せるほか、「チーム名を決める」で色・動物・果物・惑星の名前を付けられます。発表や試合の順番が必要なら「発表順を決める」で各チームが何番目かを決めます。「結果をコピー」や「TXT保存」で、グループチャットや連絡メールに貼り付けられます。同じ条件でやり直すときは「再シャッフル」を押します。
ExcelやGoogleスプレッドシートで名前の列とグループ(またはスコア)の列をまとめてコピーして貼り付けると、タブで区切られた2列がそのまま名前と区分として読み取られます。名前の前に番号の列があると番号が名前になってしまうので、名前の列からコピーしてください。
チームの人数は「商」と「余り」で決まります
参加者がN人、チームがK個のとき、まずすべてのチームにN÷Kの商の人数を割り当て、余りの人数を1チームに1人ずつ上乗せします。そのためチームの人数は商か商+1人のどちらかだけで、空のチームはできません。1チームの最大人数Mを入力した場合は、先にチーム数をN÷Mの切り上げで決め、同じ方法で分けます。最大人数は全チームをその人数まで埋めるという意味ではなく、超えないための上限です。10人を最大4人で分けると、4・4・2人ではなく4・3・3人になります。
| 参加者 | 入力 | チーム数 | チームの人数 |
|---|---|---|---|
| 12人 | チーム数3 | 3 | 4·4·4 |
| 10人 | チーム数3 | 3 | 4·3·3 |
| 10人 | 最大4人 | 3 | 4·3·3 |
| 13人 | 最大4人 | 4 | 4·3·3·3 |
| 25人 | 最大4人 | 7 | 4·4·4·4·3·3·3 |
| 31人 | 最大6人 | 6 | 6·5·5·5·5·5 |
| 27人 | 最大2人(ペア) | 14 | 2人のチームが13、1人のチームが1 |
最後の行のように、ペアを作るときに人数が奇数だと1人だけ余ります。余る人を出したくなければ、チーム数を13にして1チームだけ3人にします。どのチームが1人多くなるかは毎回ランダムに決まり、チーム番号は順位ではなく区別のための印です。
グループ均等:1つのグループの人数差はチーム間で1人以内
「グループ」を選ぶと、同じ印を書いた人どうしが1つのグループになります。大きいグループから順に、グループ内の人をシャッフルしたうえで、そのグループの人がいちばん少ないチーム、次に全体の人数がいちばん少ないチームの順に1人ずつ入れていきます。こうするとチームの人数差を1人以内に保ちながら、各グループもチームごとに商か商+1人ずつ入ります。印を書かなかった人は「グループなし」という1つのグループとして、同じように均等に分けられます。大文字と小文字だけが違う印(Aとa)は同じグループとして扱います。
| グループ | 人数 | グループの人数÷4 | 各チームに入る人数 |
|---|---|---|---|
| 営業 | 5 | 商1、余り1 | 3チームに1人、1チームに2人 |
| 開発 | 5 | 商1、余り1 | 3チームに1人、1チームに2人 |
| デザイン | 3 | 商0、余り3 | 3チームに1人、1チームに0人 |
| 企画 | 3 | 商0、余り3 | 3チームに1人、1チームに0人 |
デザイナー3人を4チームに分けると、どうしても1チームにはデザイナーがいなくなります。その場合は、デザイナーのいないチームに営業か開発の人をもう1人入れて、チームの人数を4人にそろえます。グループ構成は結果カードの下の色つきの棒で見られ、上の凡例ではグループごとの総人数と「グループごとのチーム間の人数差は1人以内」の表示を確認できます。
実力スコア均等:スコア合計が近いチーム
「実力スコア」を選ぶと、名前のあとに書いた0〜100の整数をもとに、チームごとのスコア合計が近くなるように分けます。1〜5のような単純な点数のほうが使いやすく、全員を同じ基準でつけないと結果に意味がありません。まずスコアの高い人から順に、人数の少ないチームへ、人数が同じならスコア合計の低いチームへ入れます(同点の人は順番をシャッフルします)。そのあと、別々のチームの2人を入れ替えてみて、合計の差が縮まる入れ替えを続けて採用します。入れ替えはチームの人数を変えないので、人数差1人以内のルールはそのまま守られます。
入れ替えの段階が必要なのは、高い人から合計の小さいチームへ入れていくだけでは、いちばん均等な結果にならないことがあるからです。数の分割問題を扱ったKorf(2009)の例では、8・7・6・5・4点の5人をこの方法で2チームに入れると、8・5・4点(17点)と7・6点(13点)で4点の差が出ますが、4・5・6点(15点)と7・8点(15点)に分ければ差はなくなります。
| 方法 | 3人のチーム | 2人のチーム | 合計の差 |
|---|---|---|---|
| 高い順に、合計が小さいチームへ | 8·5·4 = 17点 | 7·6 = 13点 | 4 |
| 続けて8点と6点を入れ替え | 6·5·4 = 15点 | 8·7 = 15点 | 0 |
スコア合計をぴったり等しく分ける問題は、計算理論でNP完全問題として知られています。人数が多いと、すべての割り振りを調べていちばん均等な1つを探すのは現実的ではありません。このツールは入れ替えで差を十分に縮め、結果ごとにチームのスコア合計の最小〜最大と差を凡例に表示します。差が気になるときは「再シャッフル」を押してください。同点の人どうしはランダムなので、押すたびに別の組み合わせが出ます。
同じチーム・別チームの条件
条件欄は1行が1つの組で、名前はカンマで区切ります。「同じチームにする人」の1行は全員が同じチームに入り、「別々のチームにする人」の1行は全員がバラバラのチームに分かれます。名前は名簿に書いたとおりに入力する必要があります。名簿に同じ名前が2人以上いると、誰のことかわからないため条件には使えません。その場合は、名簿側で「田中A」「田中B」のように区別して書いてください。
- 同じチームの組がつながる場合:「愛子, 拓海」と「拓海, 優太」を別々の行に書くと、3人とも同じチームになります。つながった組が最大のチームの人数より多いときは、分けられないと表示します。
- 別チームの組がチーム数より多い場合:3チームなのに4人全員を別々のチームにすることはできないので、エラーになります。
- 2つの条件がぶつかる場合:同じチームの組に入っている2人を、別チームの条件にも一緒に書くと、同時には守れません。
条件は、最初のランダムな割り振りで破られていた場合に2人を入れ替えて直す方法で守ります。グループ均等と条件を併用したときは条件が優先され、条件のためにあるグループの人数差が1人を超えたときは、凡例にそのことを表示します。
シャッフルの仕組みと、再シャッフルで変わること
人やチームを選ぶ乱数は、ブラウザのWeb Crypto(crypto.getRandomValues)から受け取ります。32ビットの乱数を「何人のうちの1人」のような範囲に変えるときは、割り切れない端の部分を捨てて引き直し、特定の人が選ばれやすくならないようにしています。並べ替えの手順はNISTのアルゴリズム辞典に載っているFisher–Yatesシャッフルで、各位置をそれより後ろのランダムな位置と入れ替える方法です。リーダーを決める設定にすると、同じ方法で各チームから1人をランダムに選ぶので、チーム内では誰がリーダーになる確率も同じです。
再シャッフルは最初から分け直す機能で、前回と違う組み合わせになる保証はありません。何人かがまた同じチームになることもあり、人数が少ないと全体が前回と同じになる場合もあります。どの発表のしかたを選んでも結果は押した瞬間にすでに決まっていて、演出は見せ方を変えるだけです。「5秒後」で席ごとに入れ替わる名前は画面の効果で抽選とは関係がなく、「すぐに表示」や「すべて発表」を押すと同じ結果が一度に表示されます。発表順も同じ乱数でチームの順番を混ぜます。
よくある間違い
- 名簿のタイトルが参加者になる:「3年2組 名簿」のような1行目も、空でなければ1人として数えます。参加人数が実際より多いときは、1行目を確認してください。
- 名前の中のカンマ:カンマは人を区切る記号なので、「佐藤, 太郎」は2人になります。名前の中のカンマは消すか、中点に変えてください。
- 最大人数を定員と勘違いする:最大4人は、全チームが4人という意味ではありません。全チームをぴったり同じ人数にしたいときは、参加者数を割り切れるチーム数を入力します。
- スコアの基準が人によって違う:ある人は10点満点、別の人は5点満点でつけると、合計をそろえても実際の実力は釣り合いません。
- グループの表記ゆれ:「営業」と「営業部」は別のグループです。凡例のグループ数が想定より多いときは、表記をそろえてください。
- 気に入るまでシャッフルする:何度も分けて好みの結果を選ぶと、ランダムに分けた意味がなくなります。みんなで進めるなら、何回目の結果を使うかを先に決めておきましょう。
このツールの限界
- 参加者は2〜200人、名前は60文字、グループ名は20文字、実力スコアは0〜100の整数までです。名簿全体では30,000文字まで受け付けます。
- グループと実力スコアを同時にそろえることはしません。どちらか重要なほうを1つ選んでください。
- 実力スコアの均等化は入れ替えで差を縮める方法なので、可能な範囲でもっとも小さい差になることは保証しません。結果のスコア合計の差を見て判断してください。
- 前回のチーム構成を覚えて、同じ人どうしが再び同じチームにならないようにする機能はありません。
- 名簿と結果はこの画面にだけあり、保存もサーバーへの送信もされず、再読み込みで消えます。共有リンクも作らないので、結果はコピーかTXT保存で渡してください。
- Web Cryptoが使えないごく古いブラウザでは、通常の乱数(Math.random)で代用します。このツールは抽選の公正さを保証・認証するものではありません。
基準日:2026年10月22日。シャッフルの手順、乱数、数の分割問題の説明は、下記の出典の原文で確認しました。
出典
- 01NIST Dictionary of Algorithms and Data Structures: Fisher-Yates shuffle各要素を、それより後ろの範囲のランダムな要素と入れ替えてN個を並べ替える手順
- 02MDN: Crypto.getRandomValues()ブラウザが提供する、暗号用途に耐える強度の乱数
- 03W3C: Web Cryptography APIgetRandomValuesを定めているブラウザの標準仕様
- 04Lemire, D. (2019). Fast Random Integer Generation in an Interval. ACM TOMACS 29(1)ランダムなビット列を決まった範囲の整数に変えるとき、偏りをなくす方法
- 05Korf, R. E. (2009). Multi-Way Number Partitioning. IJCAI-09合計が近くなるように分ける数の分割問題はNP完全であること、大きい数から合計の小さい側へ入れる方法の例(8・7・6・5・4)
よくある質問
人数がチーム数で割り切れないときは、どう分けますか?
参加者数をチーム数で割った商の人数を全チームに割り当て、余りの人数を1チームに1人ずつ加えます。10人を3チームに分けると4人・3人・3人になり、いちばん大きいチームと小さいチームの差は1人です。どのチームが1人多くなるかはランダムです。
10人で最大4人と入力したのに、4・4・2人ではなく4・3・3人になるのはなぜですか?
最大人数は埋めるべき定員ではなく、超えないための上限です。まず10÷4を切り上げて3チームと決め、そのうえで人数差がもっとも小さい4・3・3人に分けます。全チームを同じ人数にしたいときは、参加者数を割り切れるチーム数を入力してください。
部署や性別が1つのチームに偏らないようにするには?
バランス調整で「グループ」を選び、名簿の名前のあとに「/ 営業」のようにグループを書きます。同じグループの人は各チームに商か商+1人ずつ入るので、グループごとのチーム間の人数差は1人以内になります。Excelの名前の列とグループの列をまとめてコピーして貼り付けても使えます。
実力スコアはどう書けばよいですか?
名前のあとに「/ 4」のように0〜100の整数を書きます。1〜5点のような単純な基準が使いやすく、全員を同じ基準でつけてください。チームごとのスコア合計が近くなるように分け、結果にはチームのスコア合計の最小・最大と差が表示されます。
仲のよい2人を別々のチームに、または同じチームにできますか?
「同じチーム・別チームの条件」を開き、1行に1組ずつカンマで名前を書きます。「別々のチームにする人」の1行は全員が別のチームに、「同じチームにする人」の1行は全員が同じチームに入ります。組が1チームの人数より大きい、またはチーム数より多くて守れないときは、理由を表示します。
名簿に同じ名前の人が2人いたらどうなりますか?
別々の参加者として扱い、「佐藤(3番目)」のように名簿での順番を付けて表示します。ただし条件欄では誰のことかわからず使えないので、条件が必要な場合は名簿に「佐藤A」「佐藤B」のように区別して書いてください。
再シャッフルすると、前回と違うチームになりますか?
再シャッフルは最初から分け直す操作なので、前回と違う組み合わせになる保証はありません。何人かがまた同じチームになることもあり、人数が少ないと全体が同じ結果になる場合もあります。前回の構成を覚えて避ける機能はありません。
名簿は保存されたり、サーバーに送信されたりしますか?
いいえ。名簿と結果はこのブラウザの中だけで計算され、保存も送信もされず、再読み込みすると消えます。結果を残したいときは「結果をコピー」か「TXT保存」を使ってください。共有リンクは作りません。