To state the issue simply, it appears as if "shuffle" works differently on my rokhu then on a pc or in web app. On the Rokhu, the shuffle only appears to index a % of the full song list to mix and build the playlist order from. The issue I am seeings here, I am finding that which ever band I have added first to the playlist comprises of over 50% of the initial 20 songs. The band I add last to the playlist wont even get a single song played until 100 songs into the playlist.
From my estimation, if you have 1000 songs in a playlist, the rokhu is grabbing the first 50(?) songs off that deck, shuffling them, then handing you 20 of those songs and putting the other 30 back. When you use up those songs it grabs the next top 50 songs in the index table, then shuffles them, then hands you another 20. Not having looked at the code this is just a guess as to how it works. I would however like to offer up an alternative that would be equally processor friendly - I assume the rokhu index method is different in an effort to be easy on the smaller processor. I would suggest making it index the bands, then select a band with a randomizer, then index the albums for said band, repeat, then song table, and repeat. That method would prevent the device from having to index the entire song table at once like it does now but would ensure that the playlist saw the most diversity.