I would expect from a random playlist function to shuffle the playlist once randomly (or using a good PRNG with long period) whenever the function is called. Option 2 sounds closest to this, but there is no need to remove anything, the player always plays the next song in the list.
It's odd to hear that this is not standard, given that it's a standard algorithm. Maybe memory limitations?
It's odd to hear that this is not standard, given that it's a standard algorithm. Maybe memory limitations?