Bộ tạo số ngẫu nhiên

Số ngẫu nhiên
Tiếp theo

Tạo các số ngẫu nhiên trong bất kỳ khoảng giá trị nào bạn chỉ định. Chọn dạng số nguyên hoặc số thập phân, thiết lập giá trị tối thiểu và tối đa, chọn số lượng số cần tạo cùng lúc và xác định liệu có cho phép các giá trị trùng lặp hay không. Hệ thống sử dụng bộ tạo số ngẫu nhiên mật mã của trình duyệt, do đó kết quả đầu ra đáp ứng các tiêu chuẩn kiểm tra tính ngẫu nhiên thống kê.

Cách tạo số ngẫu nhiên

  1. 1

    Thiết lập phạm vi

    Giá trị tối thiểu và giá trị tối đa đều bao gồm cả hai giới hạn này; cả hai đều có thể là âm.

  2. 2

    Chọn loại

    Số nguyên hoặc số thập phân. Với số thập phân, hãy chọn số chữ số cần hiển thị.

  3. 3

    Đặt số lượng và tính duy nhất

    Cho phép lặp lại (các lần rút độc lập) hoặc yêu cầu duy nhất (không số nào xuất hiện hai lần).

  4. 4

    Tạo

    Các số hiển thị cách nhau bằng dấu phẩy hoặc mỗi dòng một số, tùy theo chế độ sao chép của bạn.

Điều gì được hiểu là “ngẫu nhiên” ở đây?

Công cụ này sử dụng Web Crypto API (crypto.getRandomValues), vốn lấy dữ liệu từ nguồn entropy của hệ điều hành. Đối với các dải giá trị nằm trong phạm vi 32 bit, kết quả thu được không thể phân biệt được với ngẫu nhiên thực sự trong bất kỳ mục đích thực tiễn nào – và đáp ứng đầy đủ các yêu cầu của các bộ công cụ dieharderTestU01.

Đối với các phạm vi rất nhỏ (2–255), công cụ sử dụng phương pháp lấy mẫu loại trừ để tránh hiện tượng thiên lệch mô-đun, nếu không thì một số giá trị có thể xuất hiện với xác suất cao hơn một chút.

Các ứng dụng điển hình

Sử dụng Cài đặt
Tung xúc xắc (d6) Số nguyên 1–6
Mô phỏng xổ số (6 trong 49) Số nguyên 1–49, số lượng 6, duy nhất
Dữ liệu thử nghiệm (ID) Số nguyên 1000–9999, duy nhất
Mô phỏng số thập phân Số thập phân 0–1, 6 chữ số
Tung đồng xu Số nguyên 0–1
Chọn một người thắng từ N người tham gia Số nguyên 1–N, số lượng 1

Sử dụng được quản lý

Trong mọi trường hợp có yêu cầu pháp lý hoặc kiểm toán (như cá cược, rút thăm chính thức, khóa mã hóa), hãy sử dụng bộ tạo số ngẫu nhiên (RNG) đã được chứng nhận và có hồ sơ nguồn gốc rõ ràng. Các bộ RNG trong trình duyệt rất tốt nhưng chưa được chứng nhận.

Câu hỏi thường gặp

Khi lấy một số ngẫu nhiên 32 bit chia lấy dư cho 10, vài giá trị cuối cùng trong dải 32 bit sẽ tạo ra số 0 nhiều hơn số 9 một chút. Đối với các dải nhỏ, sự thiên lệch này có thể bỏ qua; để đảm bảo tính công bằng ở mức dùng cho cá cược, nên dùng phương pháp lấy mẫu loại trừ – điều mà công cụ này thực hiện.

Không. Web Crypto API không hỗ trợ việc tạo số ngẫu nhiên dựa trên giá trị khởi đầu – đây là tính năng được thiết kế sẵn. Để đảm bảo khả năng tái hiện kết quả (trong các bài kiểm thử chung hoặc thí nghiệm khoa học), hãy sử dụng thư viện PRNG có giá trị khởi đầu đã được xác định trước thay thế.

Tối đa là 2^53 – 1 đối với các số nguyên an toàn, đủ để đáp ứng hầu hết mọi mục đích sử dụng không liên quan đến mật mã học. Đối với trường hợp độ chính xác tùy ý, hãy sử dụng công cụ chuyên dụng dành cho số nguyên lớn.

Đúng vậy – cả giá trị tối thiểu và tối đa đều được bao gồm trong phạm vi đầu ra, với độ chính xác đến số chữ số hiển thị.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác