Trình tạo số ngẫu nhiên là gì?
Trình tạo số ngẫu nhiên (RNG) cho ra những con số không thể đoán trước trong giới hạn mà bạn tự đặt. Công cụ này tạo các số nguyên ngẫu nhiên nằm giữa giá trị nhỏ nhất và lớn nhất (bao gồm cả hai đầu). Bạn có thể lấy một số duy nhất hoặc nhiều số cùng lúc, và tùy chọn cho phép giá trị lặp lại hay không. Công cụ rất tiện cho việc quay số trúng thưởng, bốc thăm may mắn, chọn dãy số kiểu xổ số, tìm người thắng từ danh sách, chia đội, gieo xúc xắc và trò chơi, lấy mẫu, hay bất cứ lúc nào bạn cần một lựa chọn công bằng, khách quan.
Cách sử dụng
Nhập giá trị Nhỏ nhất và Lớn nhất của khoảng, đặt Số lượng số cần tạo (từ 1 đến 100), rồi chọn có cho phép trùng lặp hay không. Nếu tắt tùy chọn trùng lặp, công cụ chỉ trả về các giá trị khác nhau — và nếu bạn yêu cầu nhiều số hơn số lượng mà khoảng có thể cung cấp, hệ thống sẽ tự động giới hạn lại bằng đúng số giá trị khả dụng.
Giải thích công thức
Để tạo một số nguyên, công cụ dùng
$$x_i = \text{Min} + \left\lfloor \text{rand}() \times \left( \text{Max} - \text{Min} + 1 \right) \right\rfloor$$trong đó \(\text{rand}()\) là một phân số đồng đều trong khoảng \([0, 1)\). Khi nhân với kích thước khoảng \((\text{Max} - \text{Min} + 1)\) rồi lấy phần nguyên (floor), ta được một độ lệch từ 0 đến range−1, sau đó cộng vào \(\text{Min}\). Nhờ vậy, mọi số nguyên trong khoảng (bao gồm hai đầu) đều có xác suất xuất hiện như nhau. Để lấy nhiều số, quá trình này được lặp lại; khi không cho phép trùng, các giá trị đã chọn sẽ bị loại khỏi tập hợp để không bị lặp lại.
$$x_i = \text{Min} + \left\lfloor \text{rand}() \times \left( \text{Max} - \text{Min} + 1 \right) \right\rfloor \quad i = 1 \dots \text{Count}$$$$\begin{gathered} \{x_1, x_2, \dots, x_k\} \subseteq \{\, \text{Min}, \dots, \text{Max} \,\}, \quad x_i \neq x_j \\[1.5em] \text{where}\quad \left\{ \begin{aligned} k &= \min\!\left( \text{Count},\; R \right) \\ R &= \text{Max} - \text{Min} + 1 \end{aligned} \right. \end{gathered}$$
Ví dụ minh họa
Giả sử bạn muốn lấy 3 số khác nhau trong khoảng từ 1 đến 6. Kích thước khoảng là \(6 - 1 + 1 = 6\). Công cụ bốc số từ tập \(\{1,2,3,4,5,6\}\) và loại bỏ mỗi giá trị đã chọn, nên bạn có thể nhận được 4, 1, 6 — ba số khác nhau, không bao giờ lặp lại. Nếu cho phép trùng lặp, kết quả có thể là 4, 4, 1.
Câu hỏi thường gặp
Các số có thực sự ngẫu nhiên không? Đó là số giả ngẫu nhiên (pseudo-random) — được tạo bởi một thuật toán phần mềm, phân bố đồng đều về mặt thống kê và hoàn toàn đủ dùng cho trò chơi, quay thưởng và những lựa chọn hằng ngày, nhưng không phù hợp cho mã hóa bảo mật.
Giá trị min và max có được tính vào không? Có. Cả hai đầu mút đều có thể được tạo ra; khoảng bao gồm cả hai biên.
Nếu min lớn hơn max thì sao? Hai giá trị sẽ tự động được hoán đổi để khoảng vẫn hợp lệ.