.NET Standard 2.1/.NET Core 2.1以降では、バイト配列(byte[])だけでなく、Span<byte>を引数にとるバージョンも追加されています。 これにより、バイト配列の一部分だけを乱数で埋めたり、配列以外のバイト列を乱数で埋めるといったことができます。
Random.NextBytesメソッドでSpan<byte>を乱数で満たす .NET Standard 2.1/.NET Core 2.1
using System;
class Sample {
static void Main()
{
Span<byte> nonce = stackalloc byte[16];
var rand = new Random();
// NextBytesを使ってstackallocで確保したメモリ領域をランダムな値で満たす
rand.NextBytes(nonce);
// 生成したnonceを表示
//Console.WriteLine(Convert.ToHexString(nonce)); // .NET 5
// 生成したnonceをBASE64形式で表示
Console.WriteLine(Convert.ToBase64String(nonce));
}
}
実行結果の一例
GA762jYsr5W3VLW/Pxhj7g==