Ну для начала определи, что понимается под случайным временем.
Например, "одно сообщение через каждые t секунд, где t - равномерно распределённое число от 300 до 3600"
Или "выбрать случайный момент времени в сутках, дождаться его наступления, отправить реплику"
Или "пусть бот каждый N секунд бросает кубик, если выпала единица - выводим сообщение".
Все три способа подразумевают разную реализацию и разные ограничения.
Я полагаю, делаешь бота на discord.py?
Тогда копай в сторону:
1. модуля random, чтобы понят как генерировать случайные числа
2.
раздел документации по discord.py посвящённый длительным процессам.
Логика примерно такая:
1. Разберись по примеру выше, как делать простой цикл, чтобы бот писал что-то в консоль.
2. Используй asyncio.sleep() чтобы задержать выполнение цикла на какое-то время.
3. Научись генерить случайные числа с помощью модуля random, и сделай задержку случайной.
4. Научись делать случайный выбор сообщения с помощью random.choice()
5. Научись отправлять сообщения в канал а не в консоль (
метод, который пригодится)
Подробнее - только кодом.