https://groups.google.com/forum/m/#!searchin/qlab/MattM/qlab/kgWgl7B8H2o
Again, it's not exactly what you're looking for, and admittedly, it's pretty crude, but it might give you some ideas on how to address the non-repeating issue. In my case, the player sets the "flagged" status of each cue as it's played, and uses that info to find its place in the list of songs the next time the jukebox is triggered, and then just proceed linearly from there until the jukebox is stopped. That's not what you're looking to do, but it would be very straightforward to write a script that simply chose a random cue from the sting machine's workspace, then checked to see if that cue was flagged. If it is, it picks again. If it isn't, it plays it, setting the "flagged"...er...flag, to "true" once the sting is finished.
Hope that's helpful!
Matt