<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<title></title>
</head>
<body>
<div id="test"></div>
<div id="list" ></div>
<input type="button" value="go" onclick="n(arr.sort(rand))"/>
<script type="text/javascript">
var arr = [];
var list = document.getElementById('list');
var test = document.getElementById('test');
function spisok(c) {
for (var a = 0; a < c; a++) {
var b = document.createElement("P");
b.innerHTML = "Элемент списка №" + a;
list.appendChild(b);
arr[a] = a
}
test.innerHTML = arr
};
function rand() {
return .5 - Math.random()
}
spisok(5)
elem_arr = [].slice.call( list.getElementsByTagName("p") ); //преобразуем в массив, для ие свой вариант написать надо бут.
var n = function (c) {
test.innerHTML = c;
for(var i = c.length, j=0; j<i ; j++ ) list.appendChild( elem_arr[ c[j] ] )
};
</script>
</body>
</html>
на коленке, но суть должна быть ясна.