랜덤 월 생성기로 할 수 있는 일
랜덤 월 생성기는 1월부터 12월까지 열두 달 가운데 무작위로 달을 뽑습니다. 한 달만 뽑을 수도 있고, 겹치지 않게 몇 달을 뽑거나 열두 달 전체를 무작위 순서로 섞을 수도 있습니다. 결과는 9월 같은 월 이름이나 09 같은 두 자리 월 숫자로 표시됩니다.
여행을 어느 달에 갈지, 퀴즈 문제를 어느 달로 낼지, 1년 치 기록 가운데 어느 달을 표본으로 볼지처럼 달력과 관련된 결정을 빠르고 공정하게 내려야 할 때 유용합니다.
모든 과정은 브라우저 안에서 실행됩니다. 아무것도 업로드되거나 저장되지 않습니다.
사용 방법
- 표시 형식에서 전체 이름 (9월), 줄임 이름 (9월), 숫자 (09) 중 하나를 고릅니다. 한국어에는 달 이름의 줄임말이 따로 없어서 한국어 페이지에서는 전체 이름과 줄임 이름이 똑같이 9월로 나옵니다.
- 원하는 달의 개수를 정합니다.
- 같은 달이 두 번 나오면 안 된다면 중복 없이를 켭니다.
- 뽑힌 달을 1월부터 12월 순으로 정렬하려면 달력 순서를 켭니다. 끄면 뽑힌 순서대로 둡니다.
- 결과 구분 기호를 고릅니다. 기본값은 쉼표와 공백입니다.
- 월 뽑기를 누릅니다.
한 달만 뽑으면 결과 아래에 큰 글씨로 표시되고, 여러 달을 뽑으면 상자 안에 나옵니다. 복사를 누르면 결과가 복사됩니다. 최근 열 번의 결과는 페이지를 떠날 때까지 최근 결과에 남으며, 더 일찍 지우려면 지우기를 누르세요.
예시
아래는 이 페이지의 코드로 실제로 뽑은 결과입니다. 직접 실행하면 다른 결과가 나옵니다.
| 설정 | 한 번 실행한 결과 |
|---|---|
| 1개, 전체 이름 | 12월 |
| 3개, 중복 없이 | 2월, 11월, 6월 |
| 4개, 중복 없이, 달력 순서 | 5월, 7월, 9월, 11월 |
| 숫자로 3개, 중복 허용 | 05, 10, 02 |
| 12개, 중복 없이 | 10월, 2월, 8월, 3월, 4월, 7월, 5월, 1월, 11월, 12월, 9월, 6월 |
| 15개, 중복 없이 | 12개월이 한 번씩 모두 나오고, 12개까지만 뽑을 수 있다는 안내가 표시됨 |
작동 원리
열두 달은 1월부터 12월까지 순서대로 목록에 들어 있고, 달 이름은 브라우저에 내장된 Intl 기능이 페이지 언어로 만듭니다. 한 달을 뽑을 때 도구는 0부터 11 사이의 위치 하나를 무작위로 고릅니다.
이 위치는 브라우저에 내장된 보안 난수 생성 기능인 crypto.getRandomValues에서 나옵니다. 원시 난수 비트를 위치로 바꿀 때는 거부 샘플링(rejection sampling)을 씁니다. 단순히 나머지 연산을 하면 난수 범위가 12로 딱 나누어떨어지지 않아 일부 위치가 아주 조금 더 자주 나옵니다. 거부 샘플링은 그런 치우침을 만드는 값을 버리기 때문에 각 달이 정확히 12분의 1 확률로 뽑힙니다.
중복 없이를 켜면 피셔-예이츠(Fisher-Yates) 방식으로 목록을 섞은 뒤 앞에서부터 필요한 만큼 가져옵니다. 모자에서 월 카드를 다시 넣지 않고 꺼내는 것과 같습니다. 달력 순서를 켜면 뽑힌 달을 월 숫자 기준으로 정렬한 다음 보여 줍니다.
활용 아이디어
- 여행 계획. 여행할 달을 뽑은 다음, 그때 그곳 날씨가 어떤지 확인해 보세요.
- 퀴즈와 수업. 나온 달의 계절, 날짜 수, 기념일을 학생들에게 맞혀 보게 합니다. 숫자 형식은 날짜 읽기 연습에도 좋습니다.
- 테스트 데이터. 샘플 레코드나 보고서 필터에 쓸 월 숫자를 만듭니다.
- 감사와 점검. 1년 중 세 달을 무작위로 뽑아 달력 순서로 정렬한 뒤 그 달의 기록을 검토합니다.
- 글쓰기 주제. 한 달을 뽑아 그 달을 배경으로 짧은 이야기를 써 봅니다.
- 챌린지. 열두 달을 섞어 달마다 습관이나 목표를 하나씩 정합니다.
팁과 한계
- 모든 달의 확률이 같습니다. 2월은 짧지만 다른 달과 똑같이 뽑힙니다.
- 달 이름은 페이지 언어로 나옵니다. 한국어 페이지에서는 1월, 2월처럼 표시됩니다. January, Sep 같은 영어 이름이 필요하면 영어 페이지에서 같은 도구를 쓰세요. 숫자 형식은 언어와 관계없이 쓸 수 있습니다.
- 숫자는 두 자리입니다. 9월은 09처럼 항상 앞에 0이 붙습니다. 그래서 텍스트로 정렬해도 순서가 맞습니다.
- 12개보다 많이 뽑을 때. 중복 없이를 켠 상태에서 12개보다 많이 요청하면 12개월이 모두 나오고 상태 줄에 안내가 표시됩니다. 중복 없이를 끄면 최대 1,000개까지 원하는 만큼 뽑을 수 있습니다.
- 정확한 날짜가 필요하다면 랜덤 날짜 생성기로 두 날짜 사이의 하루를 뽑으세요.
다른 방법으로 무작위 달 뽑기
Excel 또는 Google 스프레드시트. =RANDBETWEEN(1,12)는 월 숫자를 돌려줍니다. 이름으로 표시하려면 =TEXT(DATE(2026, RANDBETWEEN(1,12), 1), "mmmm")을 쓰고, 줄임 이름은 "mmm"을 쓰면 됩니다. 이 서식 코드가 돌려주는 달 이름의 언어는 스프레드시트의 언어 설정에 따라 달라질 수 있습니다.
Python. import calendar, random을 한 뒤 calendar.month_name[random.randint(1, 12)]을 실행하면 영어 전체 이름이 나옵니다. 서로 다른 월 숫자 세 개가 필요하면 random.sample(range(1, 13), 3)을 쓰세요.
손으로 뽑기. 종이 열두 장에 각 달을 적어 접은 다음 그릇에서 하나를 뽑습니다. 12면체 주사위가 있다면 그것도 좋습니다.
관련 도구
이름이나 장소처럼 직접 만든 목록에서 뽑으려면 랜덤 뽑기를 쓰세요. 달마다 주제를 정할 알파벳이 필요하다면 랜덤 알파벳 생성기를 사용해 보세요.