edward_freedom, вызовы rand() перемежаются довольно «тяжёлыми» вычислениями под капотом по переводу float в строку, и это даёт время набрать энтропию.
При желании можно создать условия, чтобы этот вызов вернул одинаковые значения.
У обычных пользователей на трёх элементах код не выдаст повторов.
Сергей Соколов, я тебе задал довольно простой вопрос, а ты ответить прямо не можешь. Контр пример я написал в коменты, зачем рандом, когда каждый элемент имеет индекс?
edward_freedom, зачем индекс, если потом вызвали функцию ещё раз, с другими тремя элементами, и они получили дубли id.
Это уже который по счёту аккаунт на хабре, после предыдущих в бане?
edward_freedom, для самых маленьких надо разъяснить значение непонятного слова. Контрпример — это пример, доказывающий, что последовательные вызовы Math.random() возвращают одно и то же значение. Без старого IE8 в виртуальной машине, а у среднего обычного пользователя с относительно свежим браузером.
зачем индекс, если потом вызвали функцию ещё раз, с другими тремя элементами, и они получили дубли id.
дублей идов в принципе быть не может, хоть с 10 тысячами элементами.
Ты задаешь столько вопросов и ответов не по теме, а ответить даешь ли ты гарантию, что дублей не будет даже с двумя элементами не говоришь