Полагаю то, что генерация крипто вызывается из внешнего оптимизированного небезопасного кода. а у обычного, возникает, скорее всего, много накладных расходов по работе (GC, проверка границ массивов). ну и замерять научитесь, у меня такие данные после теста
BenchmarkDotNet=v0.10.14, OS=Windows 10.0.16299.547 (1709/FallCreatorsUpdate/Redstone3)
Intel Core i7-4770K CPU 3.50GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
Frequency=3423912 Hz, Resolution=292.0636 ns, Timer=TSC
[Host] : .NET Framework 4.6.2 (CLR 4.0.30319.42000), 32bit LegacyJIT-v4.7.3130.0
DefaultJob : .NET Framework 4.6.2 (CLR 4.0.30319.42000), 32bit LegacyJIT-v4.7.3130.0
Method | I | Mean | Error | StdDev | Rank |
------- |---------- |---------------:|--------------:|--------------:|-----:|
Cripto | 10000 | 5.620 us | 0.0032 us | 0.0029 us | 1 |
Simple | 10000 | 84.398 us | 0.0452 us | 0.0401 us | 2 |
Cripto | 100000000 | 94,948.080 us | 1,126.6868 us | 1,053.9034 us | 3 |
Simple | 100000000 | 854,149.505 us | 2,348.7335 us | 2,197.0066 us | 4 |
// * Hints *
Outliers
CryptoVsSimpleRandom.Simple: Default -> 1 outlier was removed
// * Legends *
I : Value of the 'I' parameter
Mean : Arithmetic mean of all measurements
Error : Half of 99.9% confidence interval
StdDev : Standard deviation of all measurements
Rank : Relative position of current benchmark mean among all benchmarks (Arabic style)
1 us : 1 Microsecond (0.000001 sec)
использовал BenchmarkDotNet