Per farlo con HTML puro, devi farlo lato server.
Se invece vuoi farlo con JS, la cosa e` possibile.
Serve un database, inteso come raggruppamento di dati, ma devi comunaue passarlo al client, quindi non appesantisci di molto la trasmissione.
I tuoi link e le tue immagini devi inserirle in una matrice a 2 dimensioni fatta cosi`:
var matr = new Array();
matr[0] = ('link1', 'imm1');
matr[1] = ('link2', 'imm2');
matr[2] = ('link3', 'imm3');
...
dove i link sono i pezzi da inserire nei tag <a href="..."> e le varie imm da inserire nei vari [img]...[/img]
Nota che se c'e` una regola nei vari nomi, il vettore si puo` anche costruire via JS.
Poi nn ho capito che algoritmo vuoi usare per la randomizzazione.
Quanti sono i link?
Perche` parli di 8 link da spostare?
A questo punto si tratta solo di trovare il modo di scambiare l'ordine della matrice (indice principale): per farlo occorre che chiarisci il punto precedente.