Тоесть ты хочешь чтоб они плавно перекатывались или просто менялись местами? Не понятно.
p.s.
На счет позиций.. Мне кажеться легче сделать так:
Сначала сделать массив с кординатами всех "доступных" мест.
Потом написать функцию которая его будет случайно перемешивать.
И выстроить кубики по порядку.
Каждий раз куб будет на новом месте.
Вот функция которая массив "рандомит":

Код:
function rnd_array(arg1) {
el_mem = new Array();
el_num = new Array();
el_mem = arg1;
arg1 = new Array();
for (;el_num.length<el_mem.length;) {
j=random(el_mem.length);
stat=true;
for (a=0; a<el_num.length; a++) {
if (j==el_num[a]) {
stat=false;
}
}
if (stat==true) {
el_num.push(j);
}
}
for (i=0; i<el_mem.length; i++) {
arg1.push(el_mem[el_num[i]]);
}
return arg1;
}
Пользоваться просто:
myArray=rnd_array(myArray);