ещё вариант...сортировка вынесена в отдельную функцию, поэтому условия сортировки можно легко менять, в данном случае корректно отсортирует List Item больше 9
<!DOCTYPE html>
<html>
<head>
<style>
</style>
<script>
function Sort() {
var f = document.getElementById("oList"),
b = f.getElementsByTagName("li"),
a, c = [];
for (a = 0; a < b.length; a++) c[a] = b[a];
c.sort(function (d, e) {
d = +d.innerHTML.replace(/.*?(\d+).*?/, "$1");
e = +e.innerHTML.replace(/.*?(\d+).*?/, "$1");
return d - e
});
for (a = 0; a < b.length; a++) f.appendChild(c[a])
};
</script>
</head>
<body>
<UL ID = 'oList'>
<LI>List Item 2</LI>
<LI>List Item 33</LI>
<LI>List Item 1</LI>
<LI>List Item 4</LI>
</UL>
<INPUT TYPE = 'button' VALUE = "Sort List" onclick = "Sort()">
</body>
</html>