Trình tạo số ngẫu nhiên
Trình tạo số ngẫu nhiên trực tuyến miễn phí. Chọn số trong khoảng min — max bất kỳ, tạo một số hoặc danh sách dài, với bước nhảy và dấu phân cách tùy chỉnh.
Số ngẫu nhiên được tạo ra như thế nào?
Có hai họ: số ngẫu nhiên thực và số giả ngẫu nhiên. Sự khác biệt quan trọng hơn nhiều người tưởng.
Ngẫu nhiên thực đến từ các hiện tượng vật lý không thể dự đoán về mặt nguyên lý — thời điểm phân rã phóng xạ, nhiễu khí quyển thu qua micro, nhiễu nhiệt bên trong các bộ tạo dao động vòng của CPU. Tính ngẫu nhiên là bản chất, không chỉ là khó nhìn thấu. Các bộ tạo số ngẫu nhiên phần cứng trên chip hiện đại (RDRAND của Intel/AMD, TrustZone của ARM) lấy entropy trực tiếp từ những nguồn này.
Giả ngẫu nhiên đến từ các thuật toán xác định — Mersenne Twister, xorshift, PCG, ChaCha20. Cùng một hạt giống (seed) luôn cho cùng một dãy. Chúng cực nhanh và có thuộc tính thống kê rất tốt (vượt qua các bài kiểm tra như Diehard và TestU01), nhưng không thực sự khó đoán đối với người biết thuật toán và hạt giống. crypto.getRandomValues của trình duyệt trộn đầu ra giả ngẫu nhiên với entropy từ hệ điều hành và đổi seed thường xuyên, vì thế được xem là mạnh về mật mã dù về kỹ thuật vẫn là một PRNG.
Vì sao sự khác biệt này quan trọng?
Mật mã: khóa mã hóa, token phiên, bắt tay TLS đều cần không-đoán-được. Lỗ hổng ở nguồn ngẫu nhiên có thể phá toàn bộ hệ thống — ví dụ lỗi OpenSSL trên Debian năm 2008 khiến khoảng 250.000 khóa SSH có thể đoán được.
Công bằng: trong game, cờ bạc, xổ số, ngẫu nhiên đoán được là kẽ hở. Các RNG được chứng nhận (loại dùng trong sòng bài có quy định) đòi hỏi cả độ mạnh mật mã lẫn dấu vết kiểm toán.
Mô phỏng: phương pháp Monte Carlo trong vật lý, tài chính, học máy chạy trên khối lượng số ngẫu nhiên khổng lồ. Tốc độ ở đây quan trọng hơn độ mạnh mật mã — phần lớn nhà nghiên cứu dùng Mersenne Twister hoặc PCG, với seed cố định để tái lập kết quả.
Token bảo mật: link đặt lại mật khẩu, khóa API, mã 2FA phải khó đoán. Trình tạo yếu ở đây là lỗi câm — không có gì hiển nhiên hỏng, nhưng kẻ tấn công có thể đoán token.
Lấy mẫu: trong khảo sát và thống kê, mỗi cá thể trong tổng thể phải có xác suất chọn bằng nhau. Bộ tạo lệch sẽ ra dữ liệu lệch, và sai lệch đó thường chỉ lộ ra khi kết luận đã sai.
Giới thiệu trình tạo số ngẫu nhiên
Chọn một số bất kỳ giữa min và max — hoặc tạo cả một danh sách số ngẫu nhiên trong một lần. Trình tạo này lấy ngẫu nhiên từ nguồn mạnh về mật mã trong trình duyệt (crypto.getRandomValues — cùng một nguồn dùng để tạo khóa phiên TLS), thay vì Math.random cũ vốn nhanh nhưng có thể đoán được trạng thái nội bộ chỉ sau vài đầu ra. Với việc thường ngày — "ai đi trước", "ăn quán nào tối nay", quay thưởng trong văn phòng — Math.random là đủ. Nhưng với mọi tình huống mà việc đoán trước có hậu quả, dùng nguồn crypto là lựa chọn đúng.
Tham số bước (step) quy định khoảng cách giữa các giá trị được phép. Bước 1 trên khoảng 1 — 10 cho ra số nguyên 1, 2, 3, ..., 10. Bước 0.5 cùng khoảng cho ra 1, 1.5, 2, 2.5, ..., 10. Bước 2 trên 0 — 20 cho ra số chẵn. Đặt số lượng lớn hơn 1 sẽ chuyển sang chế độ tạo danh sách và nối các kết quả bằng dấu phân cách bạn chọn — tiện khi cần dữ liệu mẫu nhanh để test.
Câu hỏi thường gặp

