Для этого можно создать массив для хранения уже выбранных значений и в каждом новом вызове функции проверять, не было ли уже выбранное значение в этом массиве. Если было, то выбирать случайное значение из массива, исключая уже выбранные значения.
Пример кода на JavaScript:
```javascript
let previousValue = null;
function getRandomValueFromArray(arr) {
let randomIndex = Math.floor(Math.random() * arr.length);
if (arr[randomIndex] === previousValue) {
let remainingValues = arr.filter(value => value !== previousValue);
randomIndex = Math.floor(Math.random() * remainingValues.length);
previousValue = remainingValues[randomIndex];
return remainingValues[randomIndex];
} else {
previousValue = arr[randomIndex];
return arr[randomIndex];
}
}
// Пример использования
let myArray = [1, 2, 3, 4, 5];
console.log(getRandomValueFromArray(myArray));
console.log(getRandomValueFromArray(myArray));
console.log(getRandomValueFromArray(myArray));
```
Чтобы еще больше улучшить функцию, можно добавить проверку на исчерпание всех значений массива и соответствующую логику обновления значений. Также можно добавить возможность передачи массива уже использованных значений в функцию для более точного контроля и управления.