почему бы вам не изменить индексирование в ts, я выделю элемент, к которому вы применяете рандомизацию
Мне нравится
Считайте, что elem является оригинальным массивом
const newElemArr = [];
getRandomElem() => {
const pushElem(elem[getRandomValue(0, elem.length)]);
newElemArr.push(pushElem);
elem.splice(elem.indexOf(pushElem, 1);
if (elem.length === 1) {
newElemArr.push(pushElem);
} else {
getRandomElem();
}
}
getRandomValue(min, max) { // min and max included
return Math.floor(Math.random() * (max - min + 1) + min);
}
Здесь я делаю рекурсивную генерацию случайного значения, получаю значение этого индекса из исходного массива и pu sh в новый массив.
Таким образом, новый массив всегда будет иметь случайные значения.