Che vuol dire che non ti funziona? Cosa fa? Ti da errore o cosa?

Comunque è più o meno quello che ti ho detto di fare con lo shuffle().

Volendo il contatore lo puoi anche scrivere in un file di testo se non vuoi toccare il db.