Ok, so this article proves that they know how to do it, but they seem to have forgotten over the intervening 9 years - according to some, the shuffle function now prefers similar songs to "keep the vibe", but according to the Spotify support pages, that's a "smart shuffle" feature, and I don't have that because I'm too cheap for the paid plan. Anyway, shuffle should play the songs in a playlist in random order, but make sure to play all the songs (like shuffling a pack of cards and then looking at the cards one by one)! While Spotify's current "shuffle" just seems to pick a random song to play after the current one, with some songs repeating three times while others are never played. Annoying as hell...
Spotify designtes songs that play that way because it's a casino rigged against playing unknown and independent artists. Each time a song is played, Spotify has to pay royalties, by steering money to artists that buy spotify ads, and to major labels, they get major kickbacks.
If they paid indie artists properly, their operational budget would be much lower. Payola is the real reason why music doesn't play randomly almost anywhere anymore. It's even the case with many app music players that you download in app stores, the whole music industry is skewed to favor just a few well known and industry planted artists under the hood. And it's bent on getting worse..
If you hear an already popular TikTok song playing in the supermarket or at a gas station, it's literally driving royalties up for the involved artist. It's also why you rarely hear new music from small artists, and why Taylor Swift dominates news media every time she scratches her nose.
If you are regularly featured on the front page of YouTube, Spotify, and on CNN.Com, you dominate streaming now, and nobody else can get that spot without being backed by major money.
This is why I back up and always carry my own personal music collection. Streaming now is a generically engineered and controlled repetitive hellspot for me without real choice.
I'm a paying user so I can't speak about the free Spotify experience, but..
Spotify will only repeat a song during shuffle if you also activate repeat. It will also repeat a song if you actually added the song twice or more to said playlist. You can try it out by shuffling a playlist+deactivate repeat then check which songs have been queued from start to finish.
Smart Shuffle -despite the name- is more a playlist function than a shuffle function. It's like the Radio playlists but with the songs interspersed temporarily in your own playlist. Note that these songs were not already in your playlist - so they do not repeat unless you activate repeat.
Well, if you are using the web version, there are ad blockers (e.g. https://chromewebstore.google.com/detail/spotify-ad-blocker-...)... Actually, if you're familiar with web tech, it's not that hard to write your own ad blocker, then you're not dependent on the extension provider updating it when Spotify changes the names of the HTML elements again. But I'm confident they are already working on a WASM/canvas-based version which would make such attempts much harder.