Issue 10426 - Improve code coverage of std.random unittests

This collection of patches increases std.random unittest coverage from 79% to 91% of the module.

Most of the improvement is down to ensuring complete-as-possible coverage of RandomSample.skip().  The remainder covers small previously untested parts of the various pseudo-random number generators.

Remaining coverage failures are:

* .save methods of RandomCover and RandomSample, which are currently broken and will be fixed in a separate pull request;

* parts of the code conditional on extremely rare runtime conditions;

* static methods and parts of the code dependent on static conditionals that are never met; 

* trivial coverage failures such as methods of the dummy structs in unittests for isUniformRNG and isSeedable, assert(false) statements in unreachable parts of the code, and text() calls in asserts that never fail.