배정 방식
먼저 명단 전체를 Fisher–Yates 방식으로 섞습니다. 이 방법은 모든 순열이 정확히 같은 확률로 나오는 표준 셔플입니다. 그다음 섞인 순서대로 1번 팀, 2번 팀, … 마지막 팀, 다시 1번 팀 식으로 돌아가며 넣습니다(라운드 로빈). 그래서 인원이 딱 나누어지지 않을 때 앞쪽 팀이 한 명 더 많은 형태로, 팀 간 인원 차이가 최대 1명이 됩니다. 난수는 암호학적 난수 API를 쓰며 모든 처리는 브라우저 안에서만 이루어집니다.
팀 수로 vs 팀당 인원으로
"팀 수로"는 정확히 그 수의 팀을 만듭니다. "팀당 인원으로"는 올림(총원 ÷ 인원)개의 팀을 만들고 고르게 나눕니다. 예를 들어 14명을 4명씩 나누면 4팀이 되고 4·4·3·3명으로 배정됩니다. 마지막 팀만 2명이 되는 방식보다 공평하다고 보아 이렇게 정했습니다. 정확히 4명짜리 팀 3개와 나머지 2명이 필요하다면 명단에서 2명을 빼고 돌리면 됩니다.
조건이 있는 편성
"이 두 사람은 같은 팀 금지", "학년별 고르게" 같은 조건은 이 도구로 직접 처리하지 못합니다. 우회 방법으로, 학년별로 따로 돌린 뒤 같은 팀 번호끼리 합치면 각 팀에 학년이 고르게 섞입니다. 특정 두 사람을 떼어 놓아야 하면 결과를 보고 다시 누르는 것이 현실적입니다.
입력 형식
한 줄에 한 명이 기본이고, 쉼표로 이어 적은 것도 인식합니다. 같은 이름이 두 번 있으면 두 사람으로 취급하므로 동명이인이 아니라면 미리 정리하세요. 팀 이름을 직접 입력하면 그 순서대로 붙고, 모자라면 알파벳으로 채웁니다.
자주 묻는 질문
매번 같은 결과로 고정할 수 있나요?
현재는 누를 때마다 새로 섞입니다. 결과를 확정하려면 텍스트로 복사해 두세요.
인원 차이를 없앨 수 없나요?
총원이 팀 수의 배수가 아니면 불가능합니다. 차이는 항상 1명 이내로 유지됩니다.