code: public static <R extends Random> void using(
  		final R random,
  		final Consumer<? super R> consumer
  	) {
  		CONTEXT.with(() -> random, r -> {
  			consumer.accept(random);
  			return null;
  		});
  	}
docs: Executes the consumer code using the given {@code random} engine.
  
  <pre>{@code
  final MSeq<Integer> seq = ...
  using(new Random(123), r -> {
  seq.shuffle();
  });
  }</pre>
  
  The example above shuffles the given integer {@code seq} <i>using</i> the
  given {@code Random(123)} engine.
  
  @since 3.0
  
  @param random the PRNG used within the consumer
  @param consumer the consumer which is executed with the <i>scope</i> of
  the given {@code random} engine.
  @param <R> the type of the random engine
  @throws NullPointerException if one of the arguments is {@code null}