Organising randomised giveaways, ordering presentation queues, shuffling classroom rosters, or mixing up data samples for survey analysis are common spreadsheet tasks. When dealing with an existing list of items in Google Sheets, reordering rows manually or copying values back and forth is inefficient and error-prone. Google Sheets offers two native approaches to shuffle data effortlessly: an instant one-click built-in tool that shuffles values directly in place, and a dynamic formula approach that preserves your original source table while generating a live randomised output.
Method 1: Shuffling In-Place Using the “Randomise Range” Feature
If you have an existing list of items and simply want to scramble their row positions directly in your existing sheet without writing formulas:
- Open your spreadsheet in Google Sheets on desktop.
- Highlight the cells containing the data you wish to shuffle (for instance,
A2:A25). If your list includes header titles (such as “Candidate Name”), do not select the header row. - Right-click anywhere within the highlighted selection.
- From the context menu, click View more cell actions at the bottom.
- Click Randomise range. (Alternatively, click Data on the top menu bar and select Randomise range).
- Google Sheets instantly shuffles the order of all highlighted cells. Every row within the selected boundaries receives a randomly assigned new position.
Note on Multi-Column Data: If your list consists of multiple associated columns (such as First Name in column A and Email in column B), ensure you select all columns together across the rows before clicking Randomise range. This ensures that related row values remain paired together rather than jumbling across mismatched columns.
Method 2: Shuffling with Dynamic Formulas Using SORT and RANDARRAY
The “Randomise range” command overwrites your cells directly. If you want to keep your master list untouched in alphabetical or original order while producing a shuffled version in a secondary column or report tab, use a dynamic formula:
=SORT(A2:A25, RANDARRAY(ROWS(A2:A25)), TRUE)
Here is how this formula calculates:
A2:A25: Defines the source list of items you want to scramble.ROWS(A2:A25): Automatically counts the exact number of entries in the dataset (e.g. 24 rows).RANDARRAY(24): Creates a temporary vertical array of 24 volatile random numbers between 0 and 1.SORT(..., ..., TRUE): Sorts your original data based on the paired random numbers, spilling a completely reshuffled list into the destination cells.
Method 3: Picking a Random Subset from a Shuffled List (No Duplicates)
If you want to pick a specific number of random winners (such as selecting 3 random names from a pool of 50 contestants) without any winner being drawn twice, wrap the formula with the ARRAY_CONSTRAIN function:
=ARRAY_CONSTRAIN(SORT(A2:A50, RANDARRAY(ROWS(A2:A50)), TRUE), 3, 1)
This formula shuffles the entire roster of 49 entries, then extracts exactly 3 rows and 1 column, providing a guaranteed non-repeating random selection.
How to Freeze the Shuffled Results Permanently
Because formulas containing RANDARRAY recalculate whenever the spreadsheet refreshes, you will want to lock the results before announcing winners or assigning project roles:
- Highlight the cells containing your formula-generated shuffled list.
- Press Ctrl + C (or Cmd + C on Mac) to copy.
- Press Ctrl + Shift + V (or right-click > Paste special > Values only).
The dynamic formula will be replaced with static text values, ensuring that your randomised order remains locked and unalterable.