Il metodo random() dell'oggetto JavaScript Math genera un numero pseudo-casuale. A differenza di altri linguaggi, questo metodo usato da solo non è molto efficace. Una prova è il suo uso con gli array.
Il modo corretto per estrarre un elemento random (casuale) da un array è il seguente:
'use strict';
const getRandomInt = (min, max) => {
return Math.floor(Math.random() * (max - min + 1)) + min;
};
const arr = [1, 3, 5, 10, 0],
items = arr.length,
total = items - 1,
index = getRandomInt(0, total);
console.log(arr[index]); // 3
Il numero di partenza è 0 e dato che la numerazione degli indici di un array parte appunto da 0, il numero massimo si otterrà sottraendo 1 dal numero totale di elementi dell'array.