diff --git a/src/playlist/playlist.cpp b/src/playlist/playlist.cpp index 0f8c2f5f1..b01e2dbcc 100644 --- a/src/playlist/playlist.cpp +++ b/src/playlist/playlist.cpp @@ -1875,8 +1875,11 @@ void Playlist::ReshuffleIndices() { return; } + // If the user is already playing a song, advance the begin iterator to only shuffle items that haven't been played yet. QList::iterator begin = virtual_items_.begin(); QList::iterator end = virtual_items_.end(); + if (current_virtual_index_ != -1) + std::advance(begin, current_virtual_index_ + 1); std::random_device rd; std::mt19937 g(rd());