Вы можете использовать это https://github.com/davidbau/seedrandom. Так что идея состоит в том, чтобы изменить начальное значение для случайной функции на дату (может быть, только месяц, день и год).Например:
Math.seedrandom('August 19, 1975');
console.log(Math.random()); // 0.8213442237794714
console.log(Math.random()); // 0.9082914871756658
, а затем для преобразования его в целое число вы можете использовать описанную здесь функцию:
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}
edit:
Затем, например, использоватьэто получить что-то в массиве
<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min; //The maximum is exclusive and the minimum is inclusive
}
let arr = ['firsEl', 'secondEl', 'thirdEl', 'fourthEl'];
let d = new Date(); //get todays date
let month = d.getMonth();
let day = d.getDate();
let year = d.getFullYear();
//make the random with seed
Math.seedrandom(`${month} ${day}, ${year}`);
//and finally using the function for int
let item = arr[getRandomInt(0, arr.length)];
console.log(item);
<script src="http://cdnjs.cloudflare.com/ajax/libs/seedrandom/2.4.4/seedrandom.min.js"></script>