In older versions of iTunes, there was a 'Smart Shuffle' setting that let you tinker with the randomness of the shuffle. Its purpose was to avoid the problem you're facing. If your playlist contains a lot of X, then in a truly random shuffle it is entirely possible that X will come up all the time. It's random. That 'Smart Shuffle' feature would decrease the randomness and force iTunes to pick other artists/albums in a random setting.
But it looks like that as of iTunes 8, Apple removed it.
You could try the 'iTunes DJ' feature. You can select a playlist with that, and then one of the settings there is to play higher rated songs more often. That might help you.
Good luck!