Hola:
Evidentemente, tu problema no necesita de peticiones al servidor, así que en bez de Ajax debe tratarse en javascript...
Bueno, sobre el tema, creo que pueden existir distintas formas... de todas maneras, voy a corregirte con la forma de mostrar/ocultar. el estilo visibility no es show sino visible.
Pues las clases serían:
.selected {display: block;]
.no_selected {display: none;}
En el inicio, calcularía el número de filas, y a partir de un random las inicializaría, para facilitar las cosas le pondría a la lista un id
<ul id="lista">
...
</ul>
y tanto el inicio como el botón lo pondía más o menos:
function tag(id) {return document.getElementById(id);}
function azar() {
listado = tag("lista").getElementsByTagName("li");
elegido = Math.floor(Math.random() * listado.length);
for (var i = 0, total = listado.length; i < total; i ++)
listado[i].style.className = (i == elegido) ? "selected":"no_selected";
}
window.onload = azar;
y en el botón onclick="azar()"
Tal vez haya soluciones mejores.
Saludos