Уникальный сгенерированное число Math.random для одинаковых классов

Я хочу сгенерировать уникальное число для каждого повторяющегося класса. Голова не работает, прошу помочь найти решение.

Есть вот что

<div class="vertical__date"></div>
<div class="vertical__date"></div>
<div class="vertical__date"></div>
<div class="vertical__date"></div>

<script>
  function getRandomCalendar(min, max) {
  return Math.floor(Math.random() * (max - min)) + min;
}
  var daysCalendar = getRandomCalendar(1, 24);
</script>

<script>
function declOfNum(number, titles) {  
    cases = [2, 0, 1, 1, 1, 2];  
    return titles[ (number%100>4 && number%100<20)? 2 : cases[(number%10<5)?number%10:5] ];  
}
$('.vertical__date').html(daysCalendar +declOfNum(daysCalendar, [' час', ' часа', ' часов']) + ' назад');
</script>

Ответы (1 шт):

Автор решения: Pavel Nazarian

document.querySelector('button').onclick = fillDiv;
  
function fillDiv(){
  document.querySelectorAll('.vertical__date').forEach(el => {
    const number = getRandomNumber(1,7);
    el.textContent = number;
  })  
}  

function getRandomNumber(min,max){  
  const numbers =  [...document.querySelectorAll('.vertical__date')].map(el => +el.textContent || 0);
  let random_number = Math.floor(Math.random() * (max - min)) + min;
  return !numbers.includes(random_number) ? random_number : getRandomNumber(min,max);
}
<div class="vertical__date"></div>
<div class="vertical__date"></div>
<div class="vertical__date"></div>
<div class="vertical__date"></div>

<button> Вжух </button>

→ Ссылка