e = player elo
w = wins
l = losses
W = average gained elo
L = average lost elo
Set up a system of equations.
W + L = 30 --> We know this because the ELO lost and gained always adds up to 30 (with the exception of 2000+ ELO players which we won't get into now)
e=(Ww) - (Ll) --> This states that a player's ELO is simply (wins * elo per win) minus (losses * elo per loss). Keep in mind, players have 1000 base ELO so you must add this after.
Solve for one (say W)
W = 30 - L
Substitute into 2nd equation
e=(30-L)w - Ll
e=30w - wL - Ll
Subtract 30w, Multiply through by -1
e-30w=-wL - Ll
30w-e=wL + Ll
Isolate L
30w-e=L(w+l)
L=(30w-e)/(w+l)
Then it's easy to find W
Let's try an example, make sure it makes sense.
Spoiler!
So some examples from the playerlist:
Spoiler!
Spoiler!
EDIT: Here is a Java program to calculate this for you:
Spoiler!