The shuffle function should not repeat songs in a playlist until every song has cycled through and given an opportunity to play. (it is not working like that, currently)
For example, take a new playlist of 100 tracks, and shuffle. The tracklist will play a few random songs, say 10 or 20. Then on the next song, it will be one already played or at least given the opportunity to play. This may happen over and over, effectively never getting to many songs in the playlist.
In other words, tracks already played (or which come up in the shuffled playlist and given an opportunity to play) should be suppressed in favor of tracks which have not yet played.
This is not the current operation. Frequently I will need to skip dozens of songs in my 400-track playlist, just to get to songs which have not come up before. There should be a way to programmatically control songs based on how often they've come up.