랜덤 숫자·문자 세트 생성기란?
이 도구는 사용자가 직접 정한 범위에서 하나 이상의 항목을 무작위로 골라 세트로 만들어 줍니다. 범위는 숫자(예: 1-100)일 수도 있고 알파벳(예: a-j)일 수도 있습니다. 표본 추출, 추첨, PIN 만들기, 퀴즈 문제 고르기, 팀 배정 등 일정한 집합에서 편향 없이 무작위로 뽑아야 하는 모든 상황에 유용합니다.
사용 방법
먼저 표본 크기(몇 개를 뽑을지)를 입력하고, 추출 범위를 시작-끝 형식으로 적습니다. 그다음 중복 허용 여부(복원 추출)와 항목 사이에 쉼표 표시 여부를 선택합니다. 계산 버튼을 누르면 무작위 순서로 새로 뽑은 세트가 나옵니다.
범위의 양 끝이 모두 정수면 숫자 모드로 작동하고, 양 끝이 모두 한 글자 알파벳이면 문자 모드로 작동하며 이때 첫 글자의 대소문자가 그대로 유지됩니다.
공식과 알고리즘
후보 모집단은 범위에 포함되는 모든 값입니다. 숫자라면 최솟값부터 최댓값까지의 모든 정수로 \(\text{high} - \text{low} + 1\)개의 값이 되고, 문자라면 낮은 문자 코드부터 높은 문자 코드까지의 모든 문자입니다.
$$\text{Draw} = \text{Sample Size} \text{ items from a population of size } N$$$$\text{where}\quad \left\{ \begin{aligned} N &= |\,\text{high} - \text{low}\,| + 1 \\ [\text{low},\text{high}] &= \text{Sample Range} \end{aligned} \right.$$각 항목은 \(\text{index} = \lfloor \text{random} \times \text{남은 개수} \rfloor\) 방식으로 균등하게 선택됩니다. 중복을 허용하지 않으면 모집단을 섞은 뒤(피셔-예이츠 셔플) 앞에서 N개를 가져오므로 모든 결과가 서로 다릅니다.
$$\text{Draw} = \min\!\left( \text{Sample Size},\ N \right) \text{ unique items}$$중복을 허용하면 매번 독립적으로 뽑기 때문에 같은 값이 반복될 수 있습니다.
$$\text{Draw} = \text{Sample Size} \text{ values, each uniform over } 1 \ldots N$$$$\text{where}\quad \left\{ \begin{aligned} N &= |\,\text{high} - \text{low}\,| + 1 \\ [\text{low},\text{high}] &= \text{Sample Range} \\ P(\text{any item}) &= \dfrac{1}{N} \end{aligned} \right.$$
예제로 살펴보기
표본 크기 5, 범위 1-100, 중복 없음, 쉼표 없음으로 설정해 보겠습니다. 모집단은 1부터 100까지의 정수(100개)입니다. 즉 \(N = |100 - 1| + 1 = 100\)이며, 결과는 \(\min(5,\ 100) = 5\)개의 서로 다른 항목입니다. 서로 다른 다섯 번의 균등 추출 결과는 예를 들어 48 50 62 18 10이 될 수 있습니다. 쉼표 표시를 켜면 같은 결과가 48, 50, 62, 18, 10으로 나타납니다.
자주 묻는 질문
범위에 들어 있는 수보다 더 많은 항목을 요청하면 어떻게 되나요? 중복이 꺼져 있으면 결과 개수는 범위의 크기로 제한됩니다. 0-9에서 서로 다른 숫자 12개를 요청해도 10개만 반환됩니다.
결과가 정렬되어 나오나요? 아니요. 항목은 뽑힌 무작위 순서 그대로 표시됩니다.
4자리 PIN은 어떻게 만드나요? 표본 크기 4, 범위 0-9로 설정하세요. 서로 다른 숫자 네 개를 원하면 중복 없음, 같은 숫자가 반복돼도 되면 중복 허용으로 두면 됩니다.