As prompted by Szabolc:
You might find (if you've not already read it) Random Number Generation from the Wolfram tutorial collection interesting. Slightly dated but relevant, covers how MMA generally uses inverse CDF for such things until it deems that expensive, then switching to table-lookup or direct generation. Probably worth a ping to support, they seem pretty open about most internals, and I would not be surprised if current versions use something like Marsaglia's fast methods. As Szabolcs said, low-level internal code in C will always beat an interpreted interpretation.