Это должно сработать. (Это метод расширения, так что вы можете вызывать его так же, как вы вызываете обычные Next
или NextDouble
методы для объекта Random
).
public static Int64 NextInt64(this Random rnd)
{
var buffer = new byte[sizeof(Int64)];
rnd.NextBytes(buffer);
return BitConverter.ToInt64(buffer, 0);
}
Просто замените Int64
на UInt64
везде, если хотите вместо этого целые числа без знака, и все должно работать нормально.
Примечание: Поскольку не было предоставлено никакого контекста относительно безопасности или желаемой случайности сгенерированных чисел (на самом деле OP специально упомянул класс Random
), мой пример просто касается класса Random
, который является предпочтительным решением, когда случайность (часто определяемая как информационная энтропия ) не является проблемой. Для интереса посмотрите другие ответы, в которых упоминается RNGCryptoServiceProvider
(ГСЧ, предоставленный в пространстве имен System.Security
), который можно использовать почти одинаково.