вы можете сделать это задом наперед:
for (int i=col.count-1; i>0; i--){
DoSomething ( col.item[i]) ;
}
Не уверен насчет точного синтаксиса, но это парадигма.
Что касается абсолютно случайного порядка, вы можете получить доступ к элементу коллекции через его индекс. Чтобы убедиться, что вы нажали каждый элемент, вам нужно будет отслеживать, какие элементы вы уже обработали (возможно, скопировав коллекцию и затем удалив элемент после доступа).
РЕДАКТИРОВАТЬ: больше деталей для произвольного доступа
Код для произвольного доступа может выглядеть примерно так:
collection c = originalCollection;
while (c.count > 0) {
int i = randomNumber(seed) mod c.count
element d = c[i];
c.remove(d);
DoSomething(d);
}