also, it's more complicated than it needs to be:
-rating=1 followed later by -rating=>3 is the same as r=2,3
[rating]=>4 is the same as r=5
~sort=random is not needed because ~mix takes care of that by default.
Simplifying it here, I noticed that you also don't have recent plays excluded from the 20% of five rated tracks, which could explain the recent plays you've been getting. The following string should return desired lists:
[Media Type]=[Audio] ~mix=30,80%,{r=2,3 [Last Played]=>10d ~limit=-1,1,[Artist]},20%,{r=5 [Last Played]=>10d ~limit=-1,1,[Artist]}
Is that any better now?
Re. dupes
Another thing to remember when using ~mix:
What does MC do if, say, the r=5 part of the mix can't be satisfied?
In your example, MC needs to find 6 tracks rated 5, not played for more than 10 days, and all by different artists. If you just put those requirements into the search bar, ie:
r=5 [Last Played]=>10d ~limit=-1,1,[Artist]
and MC only returned, say, 4 tracks, then that will not be enough tracks to satisfy the ~mix rule.
I've found that in cases like that, ~mix takes priority and MC will pad the list with duplicates to satisfy the ~mix,total_number_of_tracks, rule.
this can result in some peculiar things on show in the file lists...
possible this is where your dupes are coming from?