smokedevil666, Если это одна дата для каждого сотрудника, то какой смысл выносить её в отдельную таблицу? Но, если хочется, то это можно сделать. Читайте по ссылке, которую я дал об отношении one-to-one.
Wataru, Не факт, что при малом требуемом размере массива-результата, использование кучи или очереди даст выигрыш в скорости. Алгоритмическая сложность - это всё таки не про абсолютную скорость, а про изменение скорости с ростом объёма данных.
Это уже будет не рандом. Для вашей схемы можно установить простейшую закономерность - число, которое не выпало в первых N-1 бросках, обязательно выпадет в следующем броске.
Кроме того, у вас в принципе невозможно выпадение трёх и более одинаковых чисел подряд. А такая комбинация в рандоме возможна с вероятностью 1/Nk.
let random = (Math.random()*9).toFixed();
Не надо так делать. У вас шанс выпадения для 0 и 9 в два раза ниже, чем для остальных чисел.
Правильно: const random = Math.floor(Math.random() * 10);
Но вы всё равно не поймёте, кто когда выходил и заходил, поскольку не отмечаете направление прохода.