How to Get a New Random List of Records Every Day in Airtable

You have a table of tasks in Airtable.

Each row is a task with details such as title, project, status, and assignee.

Every morning you’d like to receive a list of three random tasks that are currently In progress.

Receive a list of random records

So you set up an automation with a scheduled trigger that runs each morning. Then you add a Find records action to pull tasks marked as In progress.

The problem is that the same list shows up every day. The results don’t actually randomise.

So how do you get a new randomised list each day?

Here are three ways that you could use to make your list random each day.

1. Use a formula field to generate random scores

You can create a formula field called Score that generates random values by combining today’s date with each record’s unique ID. This gives you a fresh shuffle every day.

Here’s the formula to use:

MOD(
    (
        VALUE(DATETIME_FORMAT(TODAY(), 'YYYYMMDD'))
        * FIND(RIGHT(RECORD_ID(), 1), "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
    ),
    101
)

The part VALUE(DATETIME_FORMAT(TODAY(), 'YYYYMMDD')) turns today’s date into a number, such as 20250830. Since the number changes daily, the results automatically shift each morning.

Next, RIGHT(RECORD_ID(), 1) looks at the last character of the record’s ID. This ensures each task has its own unique factor. That character is then converted into a number between 1 and 62, which spreads out the values more evenly.

Finally, the MOD(..., 101) step keeps the final score in a range of 0 to 100, preventing very large numbers and helping the results distribute more smoothly.

Once you add this field to your table, you can sort the tasks by the score. Because the score changes every day, the order of tasks changes too. That means when you use Find records with a limit of three, you’ll always get a new randomised list.

2. Use a script in your automation

If you’re on a paid Airtable plan, you can add a scripting step to your automation to handle the randomisation directly. This gives you full control without relying on formulas or external tools.

The script will first pull all tasks where Status = In progress. Then it will shuffle that list to change the order, and finally pick the first three tasks. Each time the automation runs, you’ll get a different set.

Here’s an example you can copy into your scripting step:

// Select the Tasks table
let table = base.getTable("Tasks");

// Get all tasks
let query = await table.selectRecordsAsync();
let inProgress = query.records.filter(
  (record) => record.getCellValue("Status") === "In progress"
);

// Pick up to 3 random tasks
let chosen = [];
let usedIndexes = new Set();

while (chosen.length < 3 && usedIndexes.size < inProgress.length) {
  let index = Math.floor(Math.random() * inProgress.length);
  if (!usedIndexes.has(index)) {
    usedIndexes.add(index);
    chosen.push(inProgress[index]);
  }
}

// Format output
let taskList = chosen.map((task) => task.name).join("\n");

// Send results to the next automation step
output.set("randomTasks", taskList);

When the automation runs, the script outputs a string containing the three random tasks. You can then insert randomTasks into an email, a Slack message, or any other action.

This way, your team gets a fresh randomised list of In progress tasks every day, without any manual effort.

3. Use No-Code tools

If you’re already using an automation platform like Make, Zapier, or n8n, you can add a randomiser step there.

For example, pull all tasks matching your condition, shuffle them in the external tool, then send only the first three back into Airtable or into your email/slack notification.

Need help or have feedback? Email me at[email protected]