Существует множество способов сделать это. Два основных подхода, которые происходят со мной:
Вы можете использовать цикл в то время как не определена случайный индекс, пока он нашел один, который был ложным:
boolean[] array = {false, true, false};
int index = int(random(array.length));
while(array[index]){
index = int(random(array.length));
}
Или вы могли бы создать новый массив (или ArrayList) из только индексы, которые являются ложными, а затем случайным образом выбрать из этого массива:
boolean[] array = {false, true, false};
ArrayList<Integer> indexes = new ArrayList<Integer>();
for(int i = 0; i < array.length; i++){
if(!array[i]){
indexes.add(i);
}
}
int index = indexes.get(int(random(indexes.size())));
Обратите внимание, что вы помечены свой вопрос с processing тегом, поэтому я использую синтаксис обработки здесь. Но эти подходы действительны и в общем смысле.
Спасибо, это должно помочь мне! – SuperNewb