This is probably something that happened to you. You have carefully created the perfect playlist for your mood and you love every single song that is in there. But, you only listen to that playlist for about 20 minutes so you don’t hear every song in your playlist. You are listening to your music every day and after a few listening sessions you start to notice something weird. In that playlist, there are some songs you haven’t heard in weeks! How can that possibly happen if you’ve been listening to that playlist on shuffle for a month? Turns out, streaming platforms don’t give you a true random shuffle feature, and it is also not something you should be interested in.
Humans can’t comprehend true randomness
The biggest problem with randomness is that our perception of true randomness is not necessarily what true randomness actually is. Let’s illustrate that with an example. In the list below there are three strings of text, each with 2 A’s, 2 B’s and 2 C’s. Which one of these look the most random to you?
- ABACBC
- CBABAC
- BBAACC
If you chose option 1 or 2, you are wrong. Each of the strings are equally random. Just because one string has the equivalent characters grouped together, it doesn’t mean that it is less random.
Why you also don’t want true randomness
Up until 2014, this randomness was how Spotify used to shuffle songs in a playlist. But eventually, people started to complain that they thought that this shuffle feature was not random enough. If you replace the letters in the randomness example above with some artists’ names you can see why. With true randomness, the songs of a specific artist tend to clump together. People see this as not truly random and will complain about it. This can of course be solved by not having the same artist twice in a playlist, but this is not how people create their playlists.
How does the shuffle algorithm actually work?
Spotify has actually been very transparent about their shuffling algorithm in the past. The algorithm essentially works by clustering the individual artists and spreading them out evenly. Granted that this article was from 2014, it is safe to say that this algorithm has changed a bit since then, but the core principles of this algorithm still remains. Spotify probably takes your listening history into account when shuffling your playlist because they want to keep you listening long as possible. Given that we tend to listen to the same set of songs for a long time, this seems to be very likely. But, that will most likely remain a secret.
To illustrate this system I’ve done a little experiment myself. I have shuffled the playlist I listen to the most often 3 times and visualized the first 10 songs in the picture below. The full playlist is 30 songs long. What is the most interesting is that 3 of the 30 songs appear 3 times in the first 10 songs and 6 of the 30 songs appear 2 times in the first 10 songs. Also, none of the artists are repeated twice in a row, except for a song where the main artist is a featured artist on the next song. This reinforces the idea that in Spotify’s shuffle, artists are spread out as much as possible.
So what do you think? Is the shuffle algorithm of Spotify justified? Leave a comment below!
Very nice blog post! I personally have a love-hate relationship with the shuffle button on Spotify. Whenever I listen to music I can never decide on specific songs so I put a playlist on shuffle. However when the music is on shuffle, I find myself skipping every song as if the music I subconsciously want to listen to is not being played. I didn’t know that Spotify doesn’t actually shuffle the songs randomly but spreads out individual artists. I’ll keep that in mind next time I shuffle a playlist!
Having the same set of songs in a shuffled playlist is also a way for Spotify to promote specific songs. I’m sure labels love to pay some extra money to have their songs be played more than others every time someone shuffles a playlist with that song in it. The same thing can be done with Spotify’s ‘Enhanced’ functionality, that will automatically add similar songs to playlists that you’ve created yourself, or adding music to Release Radar. You can read more about the possibilities labels have for promoting here (https://artists.spotify.com/en/help/promos-and-playlists).
Spotify has grown as huge as it is by their great recommendations, including recommending smaller artists so that they can be discovered.
I hope they won’t sacrifice this for extra income.
They’re already doing such things by promoting specific podcasts for which they’ve paid the producers millions to move exclusively to spotify, even if you don’t listen to related podcasts. Recommending smaller, undiscovered podcasts is great, but promoting only already hugely successfull ones leaves a bad taste.
The same thing happens with huge artists that release new content, see for example the pushing of Drake’s Scorpion (https://tcrn.ch/2z9Ivbq) and how Ed Sheeran received incredible promotion that was not available for smaller artists (https://tessafightsrobots.com/tessa-lena/why-ed-sheeran-pro-spotify-streaming-services/).
Nice experiment. I use youtube music but I think that a similar shuffling technique is used. Sometimes new songs are also added to the playlist if you’ve been listening for a while. Although I think this only occurs when all the songs in the playlist have been listened to.
Thank you for this post! Having been a user of Spotify’s services for a couple of years already, I noticed that the algorithm indeed never puts the same artist two times in a row. In my case, I think it helps because when I am listening on shuffle I am usually looking for new artists to listen to. If I want to listen to more of the same artist in a row, I will go to their artist page and binge their discography instead.
This was great to read, as I never really knew exactly, but always felt the difference in randomness between spotify and a local music player. When using Foobar2k for listening to local media, which has true randomness, the current song is even included in the pool of songs that are picked randomly. I honestly think it’s a very bad design choice to have a shuffle feature that is not true random, and that at the very least it should be stated or the naming should be changed. Sometimes in spotify, I really do want true randomness. One thing i wonder is when the algorithm you mentioned “resets”. If I don’t use the app for a week, I probably won’t need any bias towards any song for the first time I press shuffle. I guess it’s not that important, but these are some real life cases where unexpected behavior could occur with such algorithms.
I immediately think of Steve Jobs announcing that they made iTunes’s shuffle more random by making it less random. I must say, I am not really bothered by Spotify’s shuffle mechanism, however, what does strike me is how it finds music for you based on your listening behavior. I believe this is very much working in line with the “bubbles” that we also see on Facebook most notably, like the confirmation bias. Music is tainted – and, I would suggest, anything on social and platform media – to be “likable;” However, this should not be confused with “similar.” I really enjoy listening to different music, and Spotify is great for this, however, it also has its ways to keep you listening to the same stuff.
Great experiment! I’ll be honest, I never really gave much thought to Spotify’s shuffle system, because even when I use it I just end up skipping to the songs I want to listen to anyway, but I have heard many people complain about the feature. The non-existence of true randomness is honestly so interesting to me, as I never really considered it before. All in all, I think Spotify’s way of spreading out the artists is a good enough way of at least trying to “appear random” in a sense, and give more variety. However, no matter what they do, some people will likely never be appeased lol.
nice post, ive also noticed this myself and its bothering the hell out of me. what i dont understand is why they can’t just give us some options for randomizing. just let me choose if i want your artificial randomization, true randomization or even let me just customize it myself for example since you have the tools to do so. in my playlist of 2k songs i shouldnt have to listen to the same 30 on repeat during the day.