Per la radomizzazione basterebbe mettere in un array i nomi delle immagini, fare uno shuffle() e prendere la prima.
Questo non ti assicura che vengano mostrate tutte le immagini prima di ripeterne una già vista.
Per avere "ciclicità", da qualche parte devi salvarti quali immagini sono state mostrate, prenderne una a caso, magari con lo stesso sistema dello shuffle(), ma prima di mostrarla verifichi se è nell'elenco di quelle mostrate, se è stata mostrata, o rifai lo shuffle, oppure prendi la successiva nell'array e ricontrolli.
Una volta che sono state mostrate tutte azzeri l'elenco.
Se invece non ti interessa che l'ordine col quale vengono prese sia sempre lo stesso:
- nel db metti un contatore che parte da 0
- crei l'array con le immagini e prendi quella all'indice che dice il db
- incrementi di 1 il contatore nel db, così la prossima volta prendi la successiva
- sapendo quante sono le immagini in totale puoi resettare il contatore quando le hai visualizzate tutte