Have you tried using Formatter>Number>Random Number to generate day like in 0-6. Then in next step use Delay>Delay Until> After <previous output> days. Then send the required message.
Hi @zappier_ss
For us to have more info, post screenshots with how your Zap steps are configured in EDIT mode with the field mappings visible.
Check your Zapier account time zone and your Zap time zone.
Help: https://help.zapier.com/hc/en-us/articles/8496215472653-Zap-dates-or-times-are-incorrect
Hi there, @zappier_ss! 
Have you had a chance to give aslamsaheer’s suggestion a try yet? And if so, did it work as hoped?
If not, can you share some screenshots of the Configure section of each of the Zap steps, as Troy mentioned, so we can take a closer look at what might be preventing it from randomly selecting the days? Make sure to blur or remove all personal information (names, emails, addresses etc.) from screenshots before sharing - you can use a tool like Zappy for that.
Looking forward to hearing from you!
Thanks for sharing those screenshots @zappier_ss. I can’t see the full code that’s being used to pick the random date so I can’t see if there’s an issue with the code that’s preventing it from running. But it looks like it’s calculating the difference between two dates, is that right? I wonder if that might be causing the trouble.
I tested with some code that just gets the current date then picks a date at random within the next 7 days and that seems to work ok:
// Get the current date
const currentDate = new Date();
// Generate a random number between 1 and 7
const randomDays = Math.floor(Math.random() * 7) + 1;
// Calculate the future date by adding the random number of days
const futureDate = new Date(currentDate);
futureDate.setDate(currentDate.getDate() + randomDays);
// Format the future date to a readable string (ISO format)
output = { randomDate: futureDate.toISOString().split('T')S0] }; // YYYY-MM-DD format

Could you give that a try sort of approach a try and let me know if that works any better?