By "random" the spec does not actually mean random, it means "unspecified" - I'm certain that each servlet container would use a predictable algorithm. I don't know that there is way to find out for sure what that algorithm is, short of examining the source code of whatever servlet container you're interested in, or running some tests with a number of listeners to get an empiric approximation.
but reply does not match the specification text
I don't think it would be accurate to say that, given that the post was made before Servlet spec 3.0 was finalized.
I also don't think that the order was unspecified prior to Servlet 3.0. For example, the Servlet spec 2.5 states (in SRV.10.3.3 and SRV.10.3.4) that the order of registration is the order of declaration in the DD, and that the order of registration is also the order of invocation.