Trình Tạo Số Ngẫu Nhiên

Tạo số ngẫu nhiên trong bất kỳ khoảng từ nhỏ nhất đến lớn nhất. Chọn số nguyên hay thập phân, số lượng và cho phép trùng lặp hoặc tập duy nhất, dựa trên ngẫu nhiên cấp mã hóa.

Loại số
Cho phép trùng

Hướng Dẫn Sử Dụng

  1. Nhập giá trị

    Điền vào các trường cần thiết.

  2. Nhấn tính toán

    Nhấn nút tính toán để xem kết quả.

  3. Xem kết quả

    Xem kết quả và chia sẻ nếu cần.

Trình tạo số ngẫu nhiên là gì?

Trình tạo số ngẫu nhiên (random number generator) là công cụ chọn các số trong một khoảng đã định theo cách mà không ai có thể đoán trước hay cố ý tác động. Bạn đặt khoảng 'giá trị nhỏ nhất ~ giá trị lớn nhất', quyết định rút bao nhiêu số và liệu cùng một giá trị có được xuất hiện lại hay không (cho phép trùng lặp · không trùng lặp), và danh sách số đáp ứng điều kiện sẽ hiện ra ngay lập tức.

Dùng ở đâu?

  • Bốc thăm · sự kiện: Loại bỏ thiên kiến của con người ở những nơi cần sự công bằng, như chọn người trúng giải, thứ tự trình bày hay phân chia đội nhóm.
  • Xổ số · chọn số: Dùng để rút số theo quy tắc cụ thể, như chọn 6 số không trùng lặp từ 1 đến 45.
  • Mô phỏng · lấy mẫu: Hữu ích cho mô phỏng tung xúc xắc, đồng xu, lấy mẫu ngẫu nhiên người trả lời khảo sát, và phân nhóm trong thử nghiệm A/B.

Công cụ này dùng crypto.getRandomValues() của trình duyệt để tạo ra số ngẫu nhiên chất lượng cao dựa trên entropy của hệ điều hành, và loại bỏ thiên lệch làm phá vỡ phân bố đều.

Công thức tính

Một số nguyên ngẫu nhiên được rút từ khoảng [min, max] được tính theo công thức sau.

kết quả = min + ⌊ r × (max − min + 1) ⌋

  • min / max: giá trị nhỏ nhất · lớn nhất của khoảng (cả hai đều bao gồm)
  • r: số ngẫu nhiên đều từ 0 đến nhỏ hơn 1
  • max − min + 1: tổng số các số nguyên có thể rút (= khoảng)

Ví dụ: với min=1, max=45 và r=0,732 thì
1 + ⌊0,732 × 45⌋ = 1 + ⌊32,94⌋ = 1 + 32 = 33

Ở chế độ không trùng lặp, nếu một giá trị đã rút lại xuất hiện thì sẽ bị loại bỏ và rút lại (lấy mẫu loại bỏ). Do đó phải có số lượng rút ≤ khoảng; với 1~45 chỉ có thể tạo tối đa 45 số không trùng lặp.

Câu Hỏi Thường Gặp

Trình tạo số ngẫu nhiên này có thực sự ngẫu nhiên không?
Nó dùng API crypto.getRandomValues() của trình duyệt để tạo ra số ngẫu nhiên an toàn về mặt mật mã, dựa trên entropy của hệ điều hành. Tính ngẫu nhiên cao hơn nhiều so với Math.random() và kết quả gần như không thể đoán trước.
Math.random() và crypto.getRandomValues() khác nhau ở điểm nào?
Math.random() là số giả ngẫu nhiên: nếu biết hạt giống (seed) bên trong, bạn có thể tái tạo và dự đoán cả chuỗi. Ngược lại, crypto.getRandomValues() là một CSPRNG dùng nguồn entropy của hệ điều hành nên không thể dự đoán. Khi cần công bằng và bảo mật, như khi bốc thăm, bạn nên dùng loại sau.
Tôi có thể tạo số ngẫu nhiên không trùng lặp không?
Có, chỉ cần chọn 'không trùng lặp'. Nó dùng phương pháp lấy mẫu loại bỏ, trong đó bất kỳ số nào trùng với số đã rút đều bị loại và rút số khác, nên không có giá trị nào xuất hiện hai lần trong kết quả.
Vì sao xuất hiện lỗi 'không thể tạo N số mà không trùng lặp'?
Để rút không trùng lặp, số lượng yêu cầu không được lớn hơn số lượng giá trị trong khoảng (khoảng = max − min + 1). Ví dụ, rút 15 số không trùng lặp từ 1~10 là không thể. Hãy mở rộng khoảng hoặc giảm số lượng.
Cài đặt thế nào để rút số xổ số?
Đặt giá trị nhỏ nhất 1, lớn nhất 45, số lượng 6 và trùng lặp là 'không trùng lặp' thì sẽ ra các số với cùng điều kiện như xổ số Hàn Quốc (6/45). Muốn xem cả số đặc biệt thì tăng số lượng lên 7. Chỉ mang tính tham khảo và không đảm bảo trúng thưởng.
Có thể tạo số ngẫu nhiên thập phân (số thực) không?
Có, đổi kiểu số sang 'thập phân' thì sẽ tạo ra số thực trong khoảng và bạn có thể chỉ định số chữ số sau dấu phẩy mong muốn. Rất hữu ích khi cần các giá trị liên tục như xác suất từ 0 đến 1 hay tọa độ.
Số ngẫu nhiên có bị thiên lệch (bias) không?
Nếu chỉ lấy phần dư của số ngẫu nhiên chia cho khoảng (modulo) thì sẽ phát sinh thiên lệch modulo, khiến một số con số xuất hiện thường xuyên hơn. Công cụ này loại bỏ thiên lệch đó bằng lấy mẫu loại bỏ, tức loại các giá trị vượt quá bội số lớn nhất của khoảng, để mọi giá trị có xác suất đồng đều.
Tôi có thể tái tạo lại cùng một kết quả không (hạt giống)?
Không. Trình tạo này mỗi lần đều tạo số từ entropy mới mà không có hạt giống, nên không thể cố ý tái tạo lại cùng một chuỗi. Nó phù hợp cho việc bốc thăm công bằng một lần; với các thí nghiệm cần tái lập, nên dùng một công cụ riêng dựa trên hạt giống.
Công thức đã xác minh 2026

Máy Tính Liên Quan