jquery mueve elementos a un orden aleatorio

Estoy intentando mostrar una serie de imágenes en un orden aleatorio. Sin embargo, no quiero que ningún elemento se repita hasta que se hayan mostrado todos los elementos, por lo que en lugar de seleccionar una imagen aleatoria de la matriz, quiero tomar la matriz completa, aleatorizarla y luego seleccionarla en secuencia desde el primero hasta el último elemento Aquí está mi código:

HTML:

<div id="tout4"
<img src="images/gallery01.jpg" class="img_lg"/>
<img src="images/gallery02.jpg" class="img_lg"/>
<img src="images/gallery03.jpg" class="img_lg"/>
</div>

y el javascript, que actualmente selecciona y muestra los elementos en orden:

var galleryLength = $('#tout4 img.img_lg').length;
var currentGallery = 0;
setInterval(cycleGallery, 5000);


function cycleGallery(){

    $('#tout4 img.img_lg').eq(currentGallery).fadeOut(300);

    if (currentGallery < (galleryLength-1)){
        currentGallery++;
    } else {
        currentGallery = 0;
    }

    $('#tout4 img.img_lg').eq(currentGallery).fadeIn(300);
}

Entonces, ¿cómo reorganizo el orden real de las imágenes, y no solo el orden en que se seleccionan?

Respuestas a la pregunta(4)

Su respuesta a la pregunta