Понадобилось сделать этакую штуку, решил сюда выложить:
var m = [1, 2, 3, 4, 5, 6]
var done = m.slice()
function resort(arr1) {
var did = []
sort1()
function sort1() {
var i = 0;
do {
var r1 = Math.random() * m.length | 0
var r2 = Math.random() * m.length | 0
var m1 = arr1[r1]
var m2 = arr1[r2]
arr1[r1] = m2
arr1[r2] = m1
did.push(r1)
did.push(r2)
i += 2
} while (i != 6)
}
}
function doCheck(arr3, arr4) {
var repeat = 0;
var max_repeat = Math.floor(arr4.length * 0.75)
for (i = 0; i < arr3.length; i++) {
for (k = 0; k < arr4.length; k++) {
if (arr3[i] == arr4[k]) {
++repeat
break;
} else continue;
}
}
if (repeat >= max_repeat) {
resort(arr3)
}
}
resort(m) // пересортировываем нужный массив
doCheck(m, done) /* для параноиков проверяем, не получился ли массив похожим с исходным, для этого вначале нужно создать массив аналогичный исходному:var done = m.slice() */
alert(m) // результат
alert(done) // исходный массив
Скрипт конечно не доработан для общего пользования
Но в будущем можно будет сделать как методы Array