랜덤 알파벳 생성기로 할 수 있는 일
랜덤 알파벳 생성기는 영어 알파벳 26자 가운데 글자를 무작위로 뽑습니다. 게임에 쓸 한 글자, 퍼즐에 쓸 짧은 글자열, 알파벳 전체를 무작위 순서로 섞은 결과까지 만들 수 있습니다. 어떤 글자를 허용할지, 대문자로 받을지 소문자로 받을지 둘을 섞을지도 직접 정합니다.
한글 자모(ㄱ, ㄴ, ㄷ 등)는 뽑을 수 없고 영어 알파벳만 다룹니다. 모든 과정은 브라우저 안에서 실행되며 아무것도 전송되거나 저장되지 않습니다.
사용 방법
- 글자 범위에서 A부터 Z, 모음만, 자음만 중 하나를 고릅니다.
- 대소문자에서 대문자 (A), 소문자 (a), 혼합 (A 또는 a) 중 하나를 고릅니다.
- 원하는 글자 개수를 최대 1,000까지 정합니다.
- 같은 글자가 한 번만 나와야 한다면 중복 없이를 켭니다.
- 결과 구분 기호를 고릅니다. 기본값은 쉼표와 공백입니다. 다른 배치를 원하면 공백이나 쉼표만, 목록으로 받으려면 줄바꿈, 한 줄로 이어진 글자열을 원하면 없음 (붙여 쓰기)를 고르세요.
- 글자 생성을 누릅니다.
한 글자는 결과 아래에 큰 글씨로 표시되고, 여러 글자는 그 아래 상자에 나옵니다. 복사를 누르면 결과가 복사됩니다. 최근 열 번의 결과는 페이지를 떠나거나 지우기를 누를 때까지 최근 결과에 남고, 항목마다 복사 버튼이 있습니다.
예시
모두 이 페이지의 코드로 실제로 뽑은 결과입니다.
| 설정 | 한 번 실행한 결과 |
|---|---|
| A부터 Z, 대문자, 1글자 | V |
| A부터 Z, 대문자, 5글자, 중복 없이 | A, P, I, F, L |
| 모음만, 소문자, 3글자 | a, i, e |
| 자음만, 대문자, 4글자, 중복 없이 | N, K, Q, P |
| A부터 Z, 혼합, 6글자 | j, D, I, L, V, E |
| A부터 Z, 대문자, 26글자, 중복 없이 | W, O, C, B, X, Q, T, D, H, A, E, S, L, P, M, N, K, G, Y, Z, F, J, R, U, V, I |
| 모음만, 10글자, 중복 없이 | E, U, O, I, A |
마지막 줄은 존재하는 글자보다 더 많은 글자를 중복 없이 요청했을 때의 결과입니다. 모음은 다섯 개뿐이라 다섯 개가 모두 무작위 순서로 나오고, 상태 줄에 다섯 개만 뽑을 수 있었다는 안내가 표시됩니다.
작동 원리
도구는 설정에 따라 뽑을 글자 묶음을 만듭니다. A부터 Z는 26자, 모음만은 5자, 자음만은 21자입니다. 혼합을 고르면 각 글자의 소문자와 대문자가 모두 들어가 묶음이 두 배가 되고, 두 형태가 나올 확률은 같습니다.
묶음에서 글자를 고르려면 무작위 위치가 필요합니다. 도구는 브라우저에 내장된 보안 난수 생성 기능인 crypto.getRandomValues에서 난수 비트를 받은 뒤, 거부 샘플링(rejection sampling)으로 위치를 정합니다. 이 방식은 일부 위치가 조금 더 잘 나오게 만드는 드문 값을 버립니다. 그 결과 묶음 안의 모든 글자가 정확히 같은 확률을 갖습니다.
중복 없이를 켜면 피셔-예이츠(Fisher-Yates) 방식으로 묶음을 섞고 앞에서부터 글자를 가져옵니다. 주머니에서 글자 타일을 다시 넣지 않고 꺼내는 것과 같습니다.
활용 아이디어
- 단어 게임. 카테고리 게임의 시작 글자를 정합니다. 그 글자로 시작하는 나라, 동물, 음식을 영어로 말해 보세요.
- 영어 수업. 아이들이 쓸 글자나 책에서 찾을 글자를 불러 줍니다. 처음 읽기를 배우는 아이에게는 소문자가 좋습니다.
- 그림과 글쓰기 주제. 한 글자를 뽑아 등장인물 이름이 모두 그 글자로 시작하는 짧은 이야기를 써 봅니다.
- 임시 코드. 샘플 상품 코드나 좌석 표시에 쓸 무작위 대문자를 몇 개 만듭니다.
- 스펠링 연습. NATO 음성 알파벳 변환기로 A는 Alfa, B는 Bravo처럼 각 글자를 소리 내어 읽어 봅니다.
팁과 한계
- 영어 빈도가 아니라 같은 확률입니다. 실제 영어 글에서는 E가 Q보다 훨씬 많이 쓰이지만 이 도구는 그 패턴을 따르지 않습니다. 허용된 글자는 모두 같은 확률이라 게임이 공정해집니다.
- 여기서 Y는 자음입니다. 게임에서 Y를 모음으로 친다면 A부터 Z에서 뽑고 필요할 때 다시 뽑으세요.
- 중복은 자연스러운 일입니다. 중복 없이를 끄면 26개 글자 중 여섯 글자를 뽑을 때 같은 글자가 두 번 나오는 일이 흔합니다.
- 영어 알파벳만 다룹니다. É, Ñ 같은 악센트 글자와 한글 자모는 포함되지 않습니다.
- 비밀번호용이 아닙니다. 글자만으로 만든 비밀번호는 약합니다. 숫자와 기호를 더하고 강도를 비트로 보여 주는 비밀번호 생성기를 쓰세요.
다른 방법으로 무작위 알파벳 뽑기
Excel 또는 Google 스프레드시트. =CHAR(RANDBETWEEN(65,90))은 A부터 Z 사이의 대문자 하나를 돌려줍니다. 소문자는 97과 122를 쓰세요. 이 수식은 시트가 바뀔 때마다 다시 계산되므로 결과를 남기려면 값으로 붙여넣어야 합니다.
Python. import random, string을 한 뒤 random.choice(string.ascii_uppercase)를 실행하면 대문자 하나가 나옵니다. 중복 없이 다섯 글자를 뽑으려면 random.sample(string.ascii_uppercase, 5)를, 결과를 예측할 수 없어야 한다면 secrets 모듈을 쓰세요.
JavaScript. String.fromCharCode(65 + n)은 0부터 25 사이의 숫자를 글자로 바꿉니다. 이 숫자는 Math.random이 아니라 이 페이지가 쓰는 방식처럼 공정한 난수원에서 가져오세요.
관련 도구
원하는 범위의 무작위 숫자가 필요하다면 랜덤 숫자 생성기를 쓰세요. 이미 목록으로 가진 단어나 이름 중에서 뽑으려면 랜덤 뽑기에 붙여넣으면 됩니다.