Самый простой вариант, на мой взгляд.
<html>
<head>
<script src="http://code.jquery.com/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#button').click(function(){
var randomize = function(arr){
var length = arr.length - 1;
for (var i = 0; i <= length; i++){
var rnd1 = Math.round(Math.random()*length),
rnd2 = 0;
do{
rnd2 = Math.round(Math.random()*length);
} while (rnd1 == rnd2);
var tmp = arr[rnd1];
arr[rnd1] = arr[rnd2];
arr[rnd2] = tmp;
}
}
var items = [];
//заполняем массив содержимым списка
$('ul li').each(function(){
items.push($(this).html());
});
//перемешиваем
randomize(items);
//обновляем список
var length = items.length;
for (var i = 0; i < length; i++){
$($('ul li')[i]).html(items[i]); //возможно, это можно сделать как-то иначе
}
});
});
</script>
</head>
<body>
<ul>
<li id="1">lorum</li>
<li id="2">ipsum</li>
<li id="3">beta</li>
</ul>
<input type="button" id="button" value="Click me"/>
</body>
</html>