Hiya. Here's my understanding. Please tell us if this is wrong, empeg guys.

Each track gets a number (the soonness factor). This number is the sum of all the fields specified in the config file. The value of the field in the database is multiplied by the factor specified in the config file for that field. If there is a minus sign preceding the field name in the config file, then the value for this field is multiplied by -1. RANDOM is not actually a database field, but it acts like one, with a random value between 1 and 32000 that will change every time.

Tracks with smaller soonness factors are played first.

I think you're right that if the list of numbers on any one line has any common factors, then that adds no extra information.
i.e. TIME=32000,RANDOM=2000 is the same as TIME=16,RANDOM=1

Lets assume we have three tracks, A:plays=5,time=30 B:plays=10,time=40 C:plays=20,time=20

So:

-PLAYS=1 gives soonness factors of A:-5, B:-10, C:-20 so the order of the tracks will always be C,B,A

TIME=1 gives soonness factors of A:30,B:40,C:20 so the order of the tracks will always be C,A,B

PLAYS=4,-TIME=2 gives soonness factors of A:20-60=-40, B:40-80=-40, C:80-40=40 so the order of the tracks will be either B,A,C or A,B,C.

-PLAYS=32000,RANDOM=20 gives soonness factors of A:-160000+R1, B:-320000+R2, C:-640000+R3 where Rx are random numbers between 20 and 640000. So, if you want roughly even weighting between number of plays and randomness, you should give each a multiplier related to the expected value of the other number. But, as said above, this is the same as -PLAYS=1600,RANDOM=1

Have I got it right? Or have I just confused the issue more?

Richard.