После некоторого исследования, это то, что я нашел, когда извлекал образец размера N из массива
- Перемешать массив
- Нарезать перемешанный массив, чтобы получить образец размера N
ПРИМЕЧАНИЕ: Функция shuffleArray
была создана с помощью этого вопроса и ответа
Ниже приведены две функции, которые решили проблему
// Function that shuffles an array
const shuffleArray = array => {
if (array.length === 1) return array
const randomIndex = Math.floor(Math.random() * array.length);
const randomElement = array[randomIndex]
array = array.filter((_, i) => i !== randomIndex)
return [randomElement, ...shuffleArray(array)];
};
// Function that returns sub array from array
const subArray = (array, n) => array.slice(0, n)
const population = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
const shuffled = shuffleArray(population)
console.log( shuffled )
console.log(subArray(shuffled, 4))