1. Можно просто записать 6 пар перестановок:
function swap(arr, a, b){
var tmp = arr[a];
arr[a] = arr[b];
arr[b] = tmp;
}
var a = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
swap(a,1,4);
swap(a,2,8);
swap(a,3,12);
swap(a,6,9);
swap(a,7,13);
swap(a,11,14);
2. Можно шагать с инкрементом 4 и брать остаток от деления на 15:
var a = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] ,tmp;
function pivot(a) {
var i, result = [];
for( i=0; i<60; i+=4) result.push(a[i%15]);
result.push(a[15]);
return result;
}
var b = pivot(a);