Hướng dẫn

Tạo Số Ngẫu Nhiên Trong Google Sheets: Hàm & Ứng Dụng Thực Tế 2026

Tuân HoangTuân Hoang
12 tháng 8, 2026
Cập nhật: 16 tháng 8, 2026
8 phút đọc
Ảnh minh họa bài viết: Tạo Số Ngẫu Nhiên Trong Google Sheets: Hàm & Ứng Dụng Thực Tế 2026

Bạn cần chọn ngẫu nhiên 1 khách hàng trúng thưởng từ danh sách 500 người, chia ca trực random cho nhân viên, hoặc tạo dữ liệu test cho một bảng tính mới — tất cả đều quy về một bài toán: làm sao Google Sheets tạo ra số ngẫu nhiên đáng tin cậy. Hàm có sẵn khá đơn giản, nhưng dùng sai cách (ví dụ để công thức tự tính lại liên tục) sẽ khiến kết quả "nhảy số" ngoài ý muốn. Dưới đây là toàn bộ hàm liên quan, cách dùng đúng và các tình huống thực tế hay gặp.

Các hàm tạo số ngẫu nhiên có sẵn trong Google Sheets

Google Sheets cung cấp 3 hàm chính để sinh số ngẫu nhiên, khác nhau ở phạm vi và kiểu dữ liệu trả về.

RAND() — số thập phân từ 0 đến 1

Cú pháp: =RAND(). Hàm không nhận tham số, trả về một số thập phân ngẫu nhiên trong khoảng [0, 1) — tức có thể ra 0 nhưng không bao giờ ra đúng 1. Đây là hàm nền để xây các công thức phức tạp hơn, ví dụ random một số trong khoảng tùy ý bằng cách nhân và cộng thêm offset.

RANDBETWEEN(min, max) — số nguyên trong khoảng cho trước

Cú pháp: =RANDBETWEEN(1, 100) trả về số nguyên ngẫu nhiên từ 1 đến 100, bao gồm cả hai đầu mút. Đây là hàm dùng nhiều nhất trong thực tế vì hầu hết nhu cầu (quay số trúng thưởng, random mã giảm giá, random ID) đều cần số nguyên trong một khoảng xác định. Lưu ý: nếu min > max, hàm sẽ trả về lỗi.

RANDARRAY(rows, columns) — sinh nguyên mảng số ngẫu nhiên

Cú pháp: =RANDARRAY(10, 3) tạo một mảng 10 dòng x 3 cột, mỗi ô là số thập phân ngẫu nhiên [0,1). Hàm này hữu ích khi cần tạo dữ liệu test hàng loạt mà không phải kéo công thức thủ công. Kết hợp với ROUND hoặc phép nhân/cộng, bạn có thể tạo cả bảng số nguyên ngẫu nhiên chỉ trong một công thức.

HàmKết quả trả vềVí dụDùng khi nào
RAND()Thập phân [0,1)0.7231Random xác suất, shuffle danh sách
RANDBETWEEN(a,b)Số nguyên [a,b]RANDBETWEEN(1,10) → 7Quay số, random ID, mã phiếu
RANDARRAY(r,c)Mảng thập phânRANDARRAY(5,2)Sinh dữ liệu test hàng loạt

Vấn đề "số nhảy liên tục" và cách khóa kết quả

Điểm gây khó chịu nhất khi dùng RAND/RANDBETWEEN: đây là các hàm volatile (dễ bay hơi) — Google Sheets tính lại giá trị mới mỗi khi bảng tính có bất kỳ thay đổi nào (gõ vào ô khác, thêm dòng, thậm chí chỉ mở lại file). Nếu bạn cần một danh sách số ngẫu nhiên cố định để lưu trữ hoặc đối chiếu sau này, phải "đóng băng" giá trị.

Cách 1: Copy → Paste Special (giá trị)

  • Chọn vùng chứa công thức RAND/RANDBETWEEN
  • Ctrl+C để copy
  • Chuột phải → Paste special → Chỉ dán giá trị (Paste values only)

Công thức sẽ biến thành số cố định, không còn tự tính lại. Đây là cách nhanh nhất cho việc quay số một lần.

Cách 2: Dùng công thức với điều kiện khóa

Nếu muốn số ngẫu nhiên chỉ sinh một lần cho mỗi dòng mới (ví dụ khi thêm khách hàng vào danh sách), có thể kết hợp IF để kiểm tra ô đã có giá trị chưa:

=IF(A2="", RANDBETWEEN(1000,9999), A2)

Công thức này chỉ sinh số mới khi ô A2 (tham chiếu chính nó) đang trống — nhưng lưu ý cách này dễ gây lỗi tham chiếu vòng (circular reference) nếu áp dụng sai cột. Cách an toàn hơn là dùng Apps Script để sinh số một lần rồi ghi giá trị tĩnh vào ô, tránh phụ thuộc vào cơ chế tính lại của Sheets.

Ứng dụng thực tế: quay số trúng thưởng công bằng

Đây là use case phổ biến nhất — chọn ngẫu nhiên 1 hoặc nhiều người từ danh sách mà không thiên vị.

Cách làm với danh sách cố định

  1. Đặt danh sách khách hàng ở cột A, từ A2 đến A501 (500 người)
  2. Tạo cột B với công thức =RAND() cho từng dòng — đây là "số vé số" ngẫu nhiên gán cho mỗi người
  3. Copy cột B, Paste Special chỉ giá trị để khóa số lại
  4. Sắp xếp toàn bộ bảng theo cột B tăng dần — người có giá trị nhỏ nhất đứng đầu chính là người trúng giải

Cách này minh bạch hơn dùng trực tiếp =INDEX(A2:A501, RANDBETWEEN(1,500)) vì bạn có thể lưu lại toàn bộ bảng đã sắp xếp làm bằng chứng khi cần giải trình với khách hàng hoặc đối tác.

Chọn nhiều người trúng thưởng cùng lúc

Nếu cần chọn 5 người trúng giải khuyến mãi, lặp lại bước sắp xếp ở trên rồi lấy 5 dòng đầu tiên. Tránh dùng RANDBETWEEN lặp lại nhiều lần vì có thể ra trùng số thứ tự, dẫn đến trùng người trúng thưởng — kỹ thuật gán RAND() rồi sắp xếp giải quyết triệt để vấn đề này vì mỗi dòng chỉ có một giá trị duy nhất.

Ứng dụng trong vận hành: chia lịch, random mã, tạo dữ liệu mẫu

Random phân ca trực hoặc phân công việc

Với đội ngũ nhỏ cần chia ca công bằng, dùng RANDBETWEEN(1, số_nhân_viên) để ánh xạ vào bảng tên qua INDEX. Cách này thường được lồng vào các file quản lý lịch trực — nếu bạn đang xây lịch quản lý dự án trên Google Sheets, có thể thêm cột random để tự động gợi ý người phụ trách task mới thay vì phân công thủ công.

Tạo mã phiếu giảm giá hoặc mã đơn hàng ngẫu nhiên

Kết hợp RANDBETWEEN với hàm nối chuỗi để tạo mã có định dạng: ="KM"&RANDBETWEEN(10000,99999) cho ra mã dạng KM48273. Với các cửa hàng bán lẻ cần random mã khuyến mãi hàng loạt, cách này nhanh hơn nhiều so với đặt mã thủ công — nội dung này cũng liên quan đến quy trình quản lý khuyến mãi được đề cập trong giải pháp Google Sheets cho ngành bán lẻ. Nếu cần mã có thể quét được ngay tại quầy, có thể chuyển mã ngẫu nhiên này thành ảnh QR bằng kỹ thuật trong bài tạo mã QR code tự động trong Google Sheets.

Tạo số hóa đơn hoặc mã theo dõi ngẫu nhiên nhưng không trùng

RANDBETWEEN không đảm bảo tính duy nhất — hai dòng hoàn toàn có thể ra cùng một số. Với các trường hợp cần mã không trùng lặp như số hóa đơn (tham khảo thêm cách đánh số tự động trong mẫu hóa đơn Google Sheets tự động đánh số) hoặc mã khách hàng trong hệ thống CRM quản lý khách hàng, nên dùng số thứ tự tăng dần (ROW() hoặc auto-number) thay vì số ngẫu nhiên thuần túy — hoặc nếu vẫn cần tính ngẫu nhiên (ví dụ để tránh đoán được số hóa đơn tiếp theo), phải thêm bước kiểm tra trùng bằng COUNTIF trước khi chấp nhận giá trị.

Sai lầm thường gặp và cách khắc phục

Sai lầmHậu quảCách khắc phục
Để công thức RAND sống trong bảng lưu trữ lâu dàiSố thay đổi mỗi lần mở file, mất dữ liệu gốcPaste Special → chỉ giá trị ngay sau khi random
Dùng RANDBETWEEN để tạo mã không trùngTrùng mã, sai lệch dữ liệuKết hợp COUNTIF kiểm tra trùng hoặc dùng số thứ tự
Random trực tiếp bằng INDEX+RANDBETWEEN cho nhiều người trúng thưởngCó thể chọn trùng 1 người 2 lầnGán RAND() cho từng dòng rồi sắp xếp, lấy top N
RANDBETWEEN(max, min) — nhập ngược thứ tựTrả về lỗi #NUM!Luôn đảm bảo tham số đầu nhỏ hơn tham số sau

Random có trọng số: khi các lựa chọn không đồng đều

Đôi khi bạn cần random nhưng không phải với xác suất bằng nhau cho mọi lựa chọn — ví dụ random một sản phẩm để hiển thị quảng cáo, trong đó sản phẩm sắp hết hàng cần xuất hiện ít hơn. Cách làm: tạo một cột "trọng số tích lũy" (cumulative weight), sau đó dùng RAND() nhân với tổng trọng số rồi tra cứu bằng INDEX kết hợp MATCH theo kiểu tìm gần đúng.

Ví dụ đơn giản với 3 sản phẩm có trọng số 5, 3, 2 (tổng 10): sản phẩm A chiếm khoảng giá trị tích lũy 0–5, B là 5–8, C là 8–10. Sinh số ngẫu nhiên từ 0 đến 10 bằng =RAND()*10, rồi dùng MATCH để xác định số đó rơi vào khoảng nào — từ đó suy ra sản phẩm tương ứng. Kỹ thuật này phức tạp hơn RANDBETWEEN thông thường nhưng cần thiết khi các hạng mục có xác suất xuất hiện khác nhau trong thực tế kinh doanh.

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

Hàm RAND và RANDBETWEEN trong Google Sheets khác nhau thế nào?

RAND() trả về số thập phân ngẫu nhiên từ 0 đến 1, thường dùng để xáo trộn hoặc tạo tỷ lệ. RANDBETWEEN(min, max) trả về số nguyên ngẫu nhiên trong khoảng cho trước, phù hợp khi cần bốc thăm, quay số hoặc chọn ID ngẫu nhiên.

Làm sao để số ngẫu nhiên không tự thay đổi mỗi khi mở lại file?

Các hàm RAND, RANDBETWEEN tự tính lại mỗi khi Sheet cập nhật. Để cố định giá trị, copy ô chứa công thức rồi Paste Special > Chỉ dán giá trị (Ctrl+Shift+V), khi đó số ngẫu nhiên sẽ đứng yên.

Cách tạo danh sách số ngẫu nhiên không trùng lặp trong Google Sheets?

Dùng kết hợp RANDARRAY hoặc RAND với hàm SORT và UNIQUE, hoặc tạo cột phụ RAND() rồi sắp xếp theo cột đó để xáo trộn thứ tự danh sách mà không trùng số, phù hợp bốc thăm trúng thưởng công bằng.

Có thể dùng số ngẫu nhiên trong Google Sheets để mô phỏng dữ liệu thử nghiệm không?

Có. RANDBETWEEN và RANDARRAY thường dùng để sinh dữ liệu giả lập (doanh số, điểm số, mã đơn hàng) phục vụ test template, demo báo cáo hoặc luyện tập phân tích dữ liệu trước khi áp dụng số liệu thật.

Bạn muốn áp dụng ngay mà không phải tự xây từ đầu?

Khám phá các mẫu Google Sheets và phần mềm quản lý dựng sẵn cho doanh nghiệp Việt tại SheetStore Marketplace.

Chia sẻ bài viết:

Tuân Hoang

Tuân Hoang

Đội ngũ SheetStore

Google SheetsGoogle Apps ScriptCRMAutomationPhần mềm quản lý doanh nghiệp

Google Workspace Certified, 5+ years experience

Bạn thấy bài viết hữu ích?

Đăng ký nhận thông báo khi có bài viết mới.

Nhận thông báo khi có bài viết mới. Không spam, hứa luôn! 😊

Bình luận (0)

Vui lòng đăng nhập để tham gia thảo luận