Non-random shuffle with no history
I've been using VLC as my music player for a while now so I can safely say that I see the following issues when I use shuffle:
- certain songs come up more often, others very rarely
- the shuffle song history works when going back, but is lost when going forward
From a computer science perspective this seems to me like the next song is being shuffled every time once a song is finished or skipped, and the random number generator used for it does not have equal probability for each possible index.
My suggestion to improve this would be to follow the approach of Google Play Music: whenever some list of music is shuffled the order is stored for one run through the entire list in a random order. (Can be thought of as generating a shuffled queue and playing the songs in the order give in it.) This way no song will come up twice before the entire queue is played. Should the repeat function be on the queue is re-shuffled once it is traversed once. Furthermore, since the order is determined, going forward or backward in the queue will always result in the same songs. As a further bonus, given the option to edit the queue, you have some extra power to decide in which order you will hear the songs, i.e. adjust the shuffling, remove or add songs at will etc.