Последовательность рандомных элементов в двумерном масиве

Есть двумерный масив вида

let array = [
  [0, 0, 0, 0],
  [0, 0, 0, 0],
  [0, 0, 0, 0],
  [0, 0, 0, 0]
]

Нужна функция, которая позволит получить массив с индексами рандомно выбранных элементов.

Результат должен выглядеть примерно так

let result = getRandomElements(arr, 5) 

Где 5 это количество элементов

result = [[1,3], [3, 1], [2,1], [3,3], [2, 2]]

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

Автор решения: Igor

Cмотрите на них как на одномерный массив индексов от нуля до (NxM - 1).

Заполните массив из пяти элементов случайными числами из этого массива, проверяя, что одинаковых нет. Потом пересчитайте обратно в индексы двумерного массива.

Если нужно много случайных элементов, например, больше четверти, то имеет смысл весь исходный массив индексов перемешать и взять первые K.

→ Ссылка