팀 나누기

명단과 팀 수만 정하면 인원을 최대한 균등하게 랜덤 배정합니다. 조 편성, 팀플에 사용하세요.

빈 줄과 앞뒤 공백은 무시합니다.

인원이 딱 나누어떨어지지 않을 때

실제 상황에서는 인원이 팀 수로 깔끔하게 나뉘는 경우가 드뭅니다. 11명을 3팀으로 나누면 4명, 4명, 3명이 되어야 하는데, 단순하게 “앞에서 4명씩 끊기”로 처리하면 마지막 팀에 3명이 아니라 아예 인원이 안 남거나 몰리는 일이 생깁니다. 이 도구는 먼저 명단 전체를 무작위로 섞은 다음, 1번 사람은 1팀, 2번 사람은 2팀, 3번 사람은 3팀, 4번 사람은 다시 1팀 하는 식으로 한 명씩 돌려 가며 넣습니다. 이렇게 하면 팀 간 인원 차이가 절대 1명을 넘지 않습니다. 먼저 섞고 나서 돌려 넣기 때문에 앞 팀이 유리해지는 일도 없습니다. 명단 순서와 배정 순서가 완전히 무관해지기 때문입니다.

섞기에는 Fisher-Yates 알고리즘을 씁니다. 뒤에서부터 한 칸씩, 아직 섞지 않은 구간의 임의 위치와 자리를 바꾸는 방식으로, 가능한 모든 순서가 정확히 같은 확률로 나온다는 것이 증명된 방법입니다. 난수는 브라우저의 암호학적 난수 생성기에서 가져오는데, 이건 Math.random 같은 의사난수와 달리 이전 결과로 다음 값을 예측할 수 없습니다. 난수 품질에 대한 자세한 설명은 랜덤 뽑기 페이지의 본문에 정리해 두었습니다.

팀 수를 인원보다 크게 넣으면 빈 팀이 생기므로, 인원 수만큼으로 줄여 배정합니다. 23명을 4팀으로 나누면 6명, 6명, 6명, 5명이 되고, 한 명이 더 들어간 팀이 어디가 될지는 섞은 결과에 따라 매번 달라집니다. 명단 맨 위에 적힌 사람이 늘 1팀에 가는 일은 생기지 않습니다.

이런 경우에 씁니다

수업 조 편성과 팀 프로젝트가 가장 흔합니다. 학생들이 직접 조를 짜게 두면 친한 사람끼리 몰리고 남는 사람이 생깁니다. 명단을 넣고 조 수만 정하면 그 문제 없이 배정이 끝나고, 결과를 화면에 그대로 띄워 두면 항의도 줄어듭니다. 사내 워크숍이나 체육대회도 마찬가지입니다. 부서별로 팀을 짜면 늘 이기는 부서가 정해져 있어 재미가 없는데, 전체 명단을 섞어 배정하면 부서가 뒤섞이면서 자연스럽게 교류가 생깁니다.

그 밖에 스터디 소그룹 편성, 발표 조 나누기, 워크숍 토론조, 게임 팀 가르기, 청소 구역 분담조, 신입 온보딩 버디 배정 같은 곳에도 씁니다. 한 명만 뽑으면 되는 상황(총무, 발표자, 벌칙 대상)이라면 랜덤 뽑기가 더 간단하고, 팀을 나눈 뒤 각 팀이 따로 밥을 먹는다면 점심 메뉴 추천으로 메뉴까지 랜덤으로 정할 수 있습니다. 회식비를 나눌 때는 N빵 계산기를 쓰세요.

팀 나누기가 뒷말 없이 끝나려면

  • 명단을 먼저 확정하고 전원에게 보여준 다음 버튼을 누릅니다.
  • 재배정 횟수를 미리 못 박습니다. 무제한이면 결국 사람이 고른 결과가 됩니다.
  • 배정이 끝나면 바로 복사해 단톡방에 올립니다. 기록이 남으면 논란이 줄어듭니다.
  • 실력 차가 큰 활동이라면 랜덤 배정 뒤 팀장끼리 한 명씩만 교환하는 규칙을 더합니다.
  • 인원이 홀수라 한 팀이 한 명 많은 건 정상입니다. 그 팀에 역할을 하나 더 주면 균형이 맞습니다.

자주 묻는 질문

인원이 팀 수로 나누어떨어지지 않으면 어떻게 되나요?

앞 팀부터 한 명씩 더 들어갑니다. 예를 들어 10명을 3팀으로 나누면 4명, 3명, 3명이 됩니다. 팀 간 인원 차이가 최대 1명을 넘지 않도록 배정하므로, 나누어떨어지지 않아도 한쪽에 몰리지 않습니다.

정말 랜덤인가요?

명단을 Fisher-Yates 알고리즘으로 섞은 뒤 앞에서부터 순서대로 각 팀에 한 명씩 돌려 넣습니다. 섞을 때 쓰는 난수는 브라우저의 암호학적 난수 생성기(crypto.getRandomValues)에서 나오고, 나머지 연산에서 생기는 치우침은 값을 버리고 다시 뽑는 방식으로 제거했습니다. 그 결과 가능한 모든 배정이 같은 확률로 나옵니다.

결과를 조작할 수 있나요?

특정 인원을 특정 팀에 넣는 코드는 없습니다. 다만 진행자가 의심받지 않으려면 명단을 화면에 띄워 전원이 확인한 뒤 버튼을 누르고, 재배정 횟수를 미리 정해 두는 편이 좋습니다. 마음에 들 때까지 다시 돌리면 그건 이미 랜덤이 아닙니다.

특정 인원을 같은 팀으로 묶을 수 있나요?

이 도구는 전원을 무작위로 배정하므로 묶기 기능은 없습니다. 꼭 붙여야 하는 두 사람이 있다면 한 줄에 두 이름을 함께 적어(예: 김철수·이영희) 한 명처럼 취급하는 방법이 있습니다. 대신 그 팀의 실제 인원은 한 명 더 많아집니다.

팀 이름을 바꿀 수 있나요?

결과는 1팀, 2팀 순으로 표시됩니다. 복사한 뒤 원하는 이름으로 바꿔 쓰면 됩니다. 복사 형식이 단톡방에 그대로 붙여넣기 좋게 되어 있어 수정도 쉽습니다.

몇 명까지 나눌 수 있나요?

인원 제한은 없습니다. 팀 수는 2개 이상이어야 하고, 명단 인원보다 많을 수 없습니다. 인원보다 많은 팀 수를 넣으면 자동으로 인원 수만큼 줄여서 배정합니다.

입력한 명단이 저장되나요?

저장되지 않습니다. 명단 입력과 섞기, 배정까지 전부 브라우저 안에서 처리되고 서버로 전송되는 값이 없습니다. 페이지를 새로 고치면 입력 내용도 사라집니다.

함께 쓰는 계산