Even something as simple as packet latency is really hard to get from JS. the timing functions you get from the browser are way too low resolution. Also the only network latency you can test for is doing an xmlhttp request as that's the only way o do any network communication (minus web sockets which arent generally available)
Aside of that, you get no direct hardware access to measure and even if you would, there is still the timer resolution problem.
Very recent browsers provide an API to get strong random numbers, but this is even less widely available than web sockets.
So either you take the mouse movement or you use something like Java or Flash, or you use bad numbers.