Số ngẫu nhiên là gì, máy tính tạo ra nó bằng cách nào

Số ngẫu nhiên là con số mà bạn không suy ra được từ những con số đã hiện trước đó, giống mặt xúc xắc sắp lăn hoặc lá thăm sắp rút khỏi mũ. Máy tính tạo ra con số như vậy bằng một công thức chạy cực nhanh, từ một mốc khởi tạo do chính máy chọn. Công cụ quay số ở trang chủ VQMM chạy đúng cơ chế đó, miễn phí và không cần đăng ký. Ở đây không có công thức. Phần giải thích dưới đây dùng xúc xắc cùng lá thăm, kèm nghĩa của chữ seed và lý do dãy số của máy bị gọi là giả ngẫu nhiên.

Số ngẫu nhiên là gì nếu lấy xúc xắc ra làm ví dụ

Một dãy số được coi là ngẫu nhiên khi biết hết các số đã ra vẫn không đoán được số kế tiếp. Gieo xúc xắc mười lần ra toàn mặt 6 thì lần thứ mười một vẫn có một phần sáu khả năng ra mặt 6. Viên xúc xắc không nhớ gì.

Hai tính chất đi kèm nhau. Mọi kết quả có cơ hội bằng nhau, và lượt sau không phụ thuộc lượt trước. Bốc thăm 45 lá giấy trong mũ cũng vậy, miễn các lá gấp giống nhau và người bốc không nhìn.

Máy tính random như thế nào

Máy tính không lắc xúc xắc. Nó giữ sẵn một con số trong bộ nhớ, đem nhân chia cộng trừ theo một quy tắc cố định để ra con số mới, rồi giữ số mới làm đầu vào cho lượt sau. Cả chuỗi phép tính xong trong vài phần triệu giây.

Kết quả thô là một số lẻ dưới 1. Tài liệu MDN Web Docs về hàm Math.random, tra cứu ngày 15/09/2026, ghi rằng hàm này trả về số lớn hơn hoặc bằng 0 và nhỏ hơn 1, phân bố gần như đều. Muốn số từ 1 tới 45 thì nhân lên rồi làm tròn.

Đó là toàn bộ thuật toán sinh số ngẫu nhiên. Không có phần cứng đặc biệt nào tham gia. Máy chỉ tính rất nhanh theo quy tắc viết sẵn.

Seed là gì trong dãy số của máy

Seed là con số nạp vào đầu tiên, tức chỗ dãy số bắt đầu. Cùng một seed thì thuật toán cho ra đúng dãy số cũ, không lệch một con. Đổi seed thì cả dãy đổi theo.

Hình dung bộ bài 52 lá xếp theo thứ tự nhà sản xuất, rồi xáo theo một kiểu cố định. Bắt đầu từ cùng thứ tự thì lần nào cũng ra cùng kết quả. Seed chính là thứ tự ban đầu ấy.

Máy lấy seed từ những thứ khó lặp lại: đồng hồ hệ thống tính tới phần nghìn giây, các nhiễu nhỏ trong máy. Vẫn theo tài liệu MDN Web Docs tra cứu ngày 15/09/2026, trình duyệt tự chọn seed cho hàm Math.random và người dùng không đặt hay đặt lại được. Hai tab mở cùng lúc vẫn ra hai dãy.

Số giả ngẫu nhiên khác gì nguồn ngẫu nhiên phần cứng

Thuật toán chỉ tạo chuỗi trông như ngẫu nhiên. Theo mục Introduction to Randomness của RANDOM.ORG, tra cứu ngày 15/09/2026, loại này dùng công thức toán hoặc bảng tính sẵn, và chuỗi sinh ra có chu kỳ, tức sẽ lặp lại sau một số lượt.

Nguồn phần cứng đi đường khác. Cũng theo trang đó, loại này lấy ngẫu nhiên từ hiện tượng vật lý rồi đưa vào máy, không có chu kỳ và không tái tạo lại được. Câu hỏi random.org là gì cũng được trả lời ngay đây: đó là dịch vụ lấy ngẫu nhiên từ tiếng ồn khí quyển thu bằng radio thường.

Chu kỳ nghe đáng lo nhưng thực ra không. Trang RANDOM.ORG viết rằng chu kỳ của các thuật toán hiện đại dài tới mức bỏ qua được trong hầu hết trường hợp thật. Một buổi tất niên quay vài trăm lượt chưa đi hết một phần nhỏ của chu kỳ.

Random có công bằng không khi kết quả do công thức sinh ra

Công bằng, vì mỗi mục trong danh sách trên công cụ quay số ngẫu nhiên nhận cơ hội như nhau và người bấm nút không biết trước con số sắp hiện. Muốn đoán, người ta phải nắm cùng lúc ba thứ: thuật toán đang chạy, seed máy vừa lấy, số lượt đã chạy từ lúc nạp seed. Người đứng trên sân khấu không có thứ nào.

Thử hình dung buổi tất niên 300 nhân viên, mỗi người một số thứ tự. Seed phụ thuộc thời điểm bấm nút. Máy tính tới phần nghìn giây, nên bấm sớm hay muộn nửa giây là ra dãy khác hẳn.

Có một chỗ dãy này không đủ dùng. Tài liệu MDN Web Docs, tra cứu ngày 15/09/2026, nói rõ Math.random không an toàn về mặt mật mã và khuyên dùng Crypto.getRandomValues cho việc liên quan tới bảo mật. Đó là chuyện của mật khẩu và khóa mã hóa, không phải của bốc thăm quà Tết.

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

Máy có thể tạo ra hai dãy số giống hệt nhau không?

Có, nếu nạp cùng seed vào cùng thuật toán. Lập trình viên cố tình làm vậy khi cần chạy lại một phép thử để tìm lỗi. Với trình duyệt thì không, vì seed do trình duyệt tự lấy.

Xúc xắc thật có ngẫu nhiên hơn máy tính không?

Chưa chắc. Xúc xắc nhựa rẻ hay lệch trọng tâm vì các lỗ chấm khoét sâu nông khác nhau, gieo nhiều lần sẽ thấy vài mặt ra trội hơn. Dãy số của máy thì không mòn cạnh.

Vì sao có người nói dãy số của máy là giả?

Vì dãy đó tái tạo được nếu biết seed, còn tiếng ồn khí quyển thì không. Chữ giả nói về cách sinh ra. Với việc rút thăm hay chia ca, khác biệt giữa hai loại không ảnh hưởng gì tới kết quả.

Cần ghi lại gì khi dùng số ngẫu nhiên để bốc thăm?

Ghi khoảng số đã đặt, số lượng kết quả mỗi lượt, có bật chế độ không trùng lặp hay không. Ba thông tin đó cộng bảng đối chiếu số thứ tự là đủ để dựng lại buổi quay. Chụp màn hình từng lượt thì càng chắc.

Chọn nguồn ngẫu nhiên đúng với việc đang làm

Thuật toán chạy trong trình duyệt đủ dùng cho phần lớn việc hằng ngày. Chỗ dễ hỏng nằm ở khâu khác. Đánh số người tham gia cho đúng và công bố luật trước lượt đầu mới là phần phải làm kỹ.

  • Rút thăm quà tất niên theo số thứ tự nhân viên
  • Chia ca trực cho tổ mười người
  • Gọi tên học sinh trả bài
  • Xếp thứ tự thuyết trình cho tám nhóm

Hai trường hợp nên đi đường khác. Sinh khóa mã hóa hay mật khẩu thì dùng hàm dành riêng cho bảo mật, theo khuyến nghị của MDN Web Docs. Các cuộc quay thưởng giá trị lớn thì theo quy trình đơn vị giám sát yêu cầu.