I read a blog post about this at some point. When people say shuffle, they don't actually mean random. They mean, songs I haven't heard in a while.
I've been having to work around it by copying over the playlist I was shuffled, running it through shuf, and then putting it in to a separate playlist, and lastly, disable shuffle. It's garbage, but it's better than what Spotify produces.