섞기와 대진의 공정성
이름을 섞고 순서를 정하는 일에는 하나의 공통 방식이 쓰입니다. 그 방식이 모든 순서를 같은 몫으로 만든다는 점을 단계별로 설명하고, 팀 크기와 후보 수 같은 구체적인 숫자를 표로 확인합니다.
섞기가 공정하다는 말의 뜻
섞기가 공정하다는 것은 가능한 모든 순서가 같은 몫으로 나온다는 뜻입니다. 세 사람의 순서는 모두 6가지이고, 공정한 섞기라면 이 여섯 가지가 각각 같은 몫으로 나와야 합니다. 어느 한 사람이 첫째 자리에 올 몫도 다른 사람과 같고, 첫째 자리에 앉은 뒤 둘째 자리에 누가 올지도 균등해야 합니다.
이 사이트에서 이름을 섞는 부분은 거의 모두 같은 방식으로 만들어져 있습니다. 코드 위치는 팀 나누기, 빙고판, 숫자야구의 비밀 숫자, 월드컵 대진입니다. 이 글은 그 방식이 왜 공정한지를 먼저 설명하고, 각 기능에서 나오는 숫자를 표로 확인합니다.
피셔-예이츠 방식을 단계별로 보기
이 방식은 배열의 맨 뒤에서 앞으로 한 칸씩 이동하면서 진행합니다. 현재 자리를 포함해 그 앞쪽 자리 가운데 하나를 무작위로 고르고, 그 둘의 값을 맞바꿉니다. 이미 지나온 뒷자리는 다시 건드리지 않습니다. 예를 들어 이름 세 개로 시작하면 마지막 자리에는 셋 중 하나가 같은 몫으로 오고, 다음 자리에는 남은 둘 중 하나가 오고, 마지막 하나는 저절로 정해집니다.
선택 가짓수는 3, 2, 1입니다. 곱하면 6이고 이는 가능한 순서의 수와 같습니다. 각 선택이 균등하고 선택들의 조합이 순서 하나와 정확히 하나씩 대응하므로 모든 순서가 같은 몫을 가집니다. 이름이 n개이면 순서는 n의 계승만큼 있고, 같은 논리가 성립합니다. 한 단계라도 선택 범위를 잘못 잡으면 이 균등함이 깨지기 때문에, 코드에서는 범위를 현재 자리까지로 정확히 제한합니다.
이 사이트의 섞기는 브라우저가 제공하는 일반 난수 함수를 씁니다. 암호용 난수가 아니므로 금전이 걸린 추첨이나 법적 효력이 필요한 추첨에는 적합하지 않습니다.
팀 나누기: 섞은 뒤 차례로 나눠 줍니다
팀 나누기의 기본 방식은 간단합니다. 이름 목록을 위의 방법으로 섞은 다음, 첫 번째 이름부터 팀 1, 팀 2, 팀 3 순서로 돌아가며 한 명씩 배정합니다. 팀 수가 정해지면 마지막까지 이 순환이 이어지므로 팀 사이의 인원 차이는 최대 한 명입니다. 누가 어느 팀에 들어가는지는 섞기에서 이미 균등하게 정해져 있습니다.
| 인원 | 2팀 | 3팀 | 4팀 | 5팀 | 6팀 |
|---|---|---|---|---|---|
| 7명 | 4·3 | 3·2·2 | 2·2·2·1 | 2·2·1·1·1 | 2·1·1·1·1·1 |
| 10명 | 5·5 | 4·3·3 | 3·3·2·2 | 2·2·2·2·2 | 2·2·2·2·1·1 |
| 13명 | 7·6 | 5·4·4 | 4·3·3·3 | 3·3·3·2·2 | 3·2·2·2·2·2 |
| 17명 | 9·8 | 6·6·5 | 5·4·4·4 | 4·4·3·3·3 | 3·3·3·3·3·2 |
| 20명 | 10·10 | 7·7·6 | 5·5·5·5 | 4·4·4·4·4 | 4·4·3·3·3·3 |
13명을 3팀으로 나누면 5·4·4이고, 17명을 5팀으로 나누면 4·4·3·3·3입니다. 인원이 팀 수로 나누어떨어지지 않을 때는 앞쪽 팀이 한 명 더 많아집니다. 팀 번호에 의미가 있다면, 예를 들어 팀 1이 먼저 발표한다면 이 점을 알아 두는 것이 좋습니다. 팀원의 구성은 공정하게 섞이지만 팀 크기는 번호에 따라 정해집니다.
이 표는 이름만 입력한 기본 모드의 계산입니다. 실력이나 규칙을 입력해서 나누는 방식은 별도의 알고리즘을 쓰므로 이 글의 계산이 그대로 적용되지 않습니다. 해당 모드의 동작은 팀 나누기 페이지의 설명을 확인해 주세요.
빙고판: 25개 숫자의 순서
빙고판의 숫자는 1부터 25까지를 담은 배열을 같은 방법으로 섞어서 만듭니다. 25개의 숫자가 놓일 수 있는 순서는 모두 같은 몫이므로, 특정 숫자가 한가운데 칸에 올 몫도 다른 칸과 같습니다. 이 사이트 빙고는 번갈아 숫자를 부르는 방식이고, 선공은 컴퓨터와 사람 중 무작위로 정해져 각각 50%입니다.
빙고판에는 가로, 세로, 대각선을 합쳐 12줄이 있습니다. 먼저 3줄을 완성한 쪽이 이깁니다. 이 줄 수는 판을 어떻게 섞든 변하지 않는 구조적 숫자입니다.
숫자야구: 비밀 숫자를 부분만 섞기
숫자야구의 비밀 숫자는 0부터 9까지의 숫자 열 개를 담은 배열에서 처음 자리부터 필요한 길이만큼만 섞어 만듭니다. 3자리라면 앞의 세 자리만 정하면 되므로 같은 단계를 세 번만 진행합니다. 한 단계마다 아직 정해지지 않은 자리 안에서 무작위로 고르는 방식이라, 결과로 나오는 숫자열은 모든 가능한 조합이 같은 몫입니다.
| 자릿수 | 가능한 비밀 숫자 | 시도 횟수 제한 |
|---|---|---|
| 3자리 | 720 | 10 |
| 4자리 | 5040 | 12 |
같은 숫자가 겹치지 않으므로 3자리는 10 곱하기 9 곱하기 8, 4자리는 거기에 7을 한 번 더 곱한 값입니다. 맨 앞자리가 0이 될 수 있다는 점도 후보 수에 포함됩니다. 후보가 5040개나 되는데 시도 제한이 12회라는 점에서, 매 추측에서 후보를 효율적으로 줄이는 연습이 필요함을 알 수 있습니다.
월드컵: 선발과 대진 모두 섞기에서 나옵니다
이상형 월드컵은 후보 전체를 섞은 다음 앞에서 필요한 수만큼 잘라서 시작합니다. 후보가 32개이고 16강을 고르면 어느 한 후보가 뽑힐 몫은 16/32, 즉 50%입니다. 뽑힌 후보들은 섞인 순서 그대로 두 개씩 묶여 첫 경기가 됩니다. 그래서 16강의 특정한 두 후보가 첫 경기에서 만날 몫은 한 후보를 기준으로 남은 15개 가운데 하나이므로 6.7%입니다.
| 대진 | 경기 수 |
|---|---|
| 4강 | 3 |
| 8강 | 7 |
| 16강 | 15 |
매 경기에서 한 후보가 탈락하므로 경기 수는 대진 크기에서 1을 뺀 값입니다. 우승 후보는 선택으로 결정되는 것이지 섞기가 정하는 것이 아닙니다. 섞기가 맡는 일은 누가 어디서 시작하는지를 중립적으로 만드는 것까지입니다.
섞기가 보장하지 않는 것
섞기는 한 번의 결과가 고르게 나온다는 점을 보장할 뿐, 몇 번 사용했을 때 모든 사람이 고르게 돌아가는 것을 보장하지 않습니다. 세 번 연속 같은 사람이 첫 순서가 될 수도 있습니다. 또한 입력한 목록 자체가 잘못되어 있으면 결과가 아무리 공정해도 의미가 없습니다. 이름이 중복되었는지, 빠진 사람이 없는지를 먼저 확인하세요.
공정함이 서로 다른 뜻으로 쓰인다는 점도 기억해 주세요. 입력 칸이 모두 같은 조건에 있다는 뜻과, 순서와 무관하게 같은 결과 몫을 가진다는 뜻은 다릅니다. 이 사이트는 외부 기관이 검증한 추첨 장치가 아니라, 직접 코드를 읽고 계산해 볼 수 있는 모임용 도구입니다.
이 숫자를 확인하는 방법
이 페이지의 숫자는 게임별 계산 파일을 불러와 얻은 값입니다. 팀 크기는 팀 나누기의 계산 함수에 이름 목록을 넣어 실제로 나눠 본 결과이고, 숫자야구의 후보 수는 가능한 숫자열을 모두 만들어 센 값입니다. 빙고의 줄 수와 월드컵의 경기 수도 해당 코드의 상수와 구조에서 읽었습니다. 테스트는 이 페이지의 값이 계산값과 일치하는지 확인합니다.
직접 해 보려면 이름 6개를 팀 나누기에 넣고 3팀으로 20번 나눠 보세요. 특정 두 사람이 같은 팀이 된 횟수를 세어 아래 표에 적습니다. 6명을 3팀으로 나눌 때 두 사람이 같은 팀이 될 몫은 나머지 다섯 명 중 한 명이 짝이 된다는 논리로 따져 볼 수 있습니다. 20번으로는 정확히 맞지 않아도 정상입니다.
| 확인한 두 사람 | 같은 팀이 된 횟수 | 전체 시행 수 |
|---|---|---|
| A와 B | ||
| A와 C |
실제 화면은 빙고, 숫자야구, 월드컵에서 볼 수 있습니다. 시리즈의 처음으로 돌아가려면 확률·공정성 해설을 열어 주세요.