Works ok, still I noticed some songs being played more than others
How are you scheduling things, please show your exact script! And how are you measuring and testing things? As I can not reproduce it here - may be (and this is what I believe) your test sample number is simply too small.
So here is a question. How can I play an entire folder of music equally
Just use the "Random" and or the "LeastTimesPlayed" script-line modes. Those play the entries equally!
... equally and completely before playing repeats again
If you really would want to only repeat a song after all other have been played, then you should use the "Sequential" mode, as that is essentially the same! Think of it a bit; real randomness can only be achieve if you (sometimes) repeat a track, even if others might not have been played so often.
A good blend between real randomness and your goal to completely play all tracks before playing repeats again is something like this:
1. LeastTimesPlayed, YourLib, Count=1
2. Random, YourLib, Count=1
3. LeastTimesPlayed, YourLib, Count=1
If you prefer to play almost all before repeating, that this single line will do the job:
1. LeastTimesPlayed, YourLib, Count=1