Chris
Блин, мне кроме рекурсивного определения ничего в голову не идёт.
Берём вчерашнее число, берём набор 1-10, вычёркиваем вчерашнее, берём случайный элемент. Но тогда надо определить базу, и с каждым днём оно будет считаться всё дольше и дольше.
function getRandomByDate(date = new Date()) {
date = new Date(date.getFullYear(),date.getMonth(),date.getDate(),0,0,0).getTime();
if (date <= 1608670800000) return 1;
const yesterday = getRandomByDate(new Date(date - 1000 * 3600 * 24)) ;
const today = date / 1e5 * 75 % 65537 % 9;
const set = new Set([1,2,3,4,5,6,7,8,9,10]);
set.delete(yesterday);
return [...set][today]
}