I have the same! I wish music players and recommendation systems had support for this. I'd like an option "This song is great, but stop playing it for a month or I'll start to hate it".
My player is not as precise as that but it works for me. I have a dedicated skip button and I keep adding meta keys to make it skip more (each meta key is x2).
I seldom want to choose a track to play. The next track to play is automatically selected based on the combination of two factors: being skipped less and being selected less.
I get to hear my whole collection in a way that's far more enjoyable than an unweighted shuffle.