Случайный выбор между двумя числами

Всем доброго дня! Имеется массив чисел (все значения в нем могут быть только от 1 до 3)

new int[]{3,3,2,3,3,2,2,3,2,2,1,1,1,1}, вот например такой

Нужно поменять значение ячейки массива [i] таким образом, чтобы каждое [i] изменилось на другое, допустимое значение. Например, если первое значение i=3, то его надо изменить на 1 или 2. И так далее.

Подскажите как это сделать? То есть по сути мне нужно случайно выбрать одно значение из двух возможных


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

Автор решения: ЮрийСПб

Навскидку на можно что-то такое соорудить)

fun randomAllowedValue(excludedValue: Int): Int = mutableListOf(1,2,3).apply { remove(excludedValue) }.let { it[Random.nextInt(it.size)] }
→ Ссылка
Автор решения: MBo
1 + (i+random(2))%3

где random(2) даёт 0 или 1 (не знаю, как это в джаве пишется)

→ Ссылка