NextBytesメソッドを使うと、バイト配列を0からByte.MaxValueまでのランダムな値で満たすことができます。 nonce値を生成したい場合などに、このメソッドを使うことができます。
Random.NextBytesメソッドでバイト配列を乱数で満たす
      using System;
class Sample {
  static void Main()
  {
    var nonce = new byte[16];
    var rand = new Random();
    // NextBytesを使って配列をランダムな値で満たす(16バイトのnonce値を生成する)
    rand.NextBytes(nonce);
    // 生成したnonceを表示
    Console.WriteLine(BitConverter.ToString(nonce));
    // 生成したnonceをBASE64形式で表示
    Console.WriteLine(Convert.ToBase64String(nonce));
  }
}
実行結果の一例
      5D-DA-A5-7C-17-F5-12-FD-28-12-77-27-8C-41-33-D1 XdqlfBf1Ev0oEncnjEEz0Q==
実際にnonce値として使用する乱数の場合は、RandomNumberGeneratorクラスを使ったほうが適当な場合が多いと思われます。 RandomNumberGeneratorクラスを使ってnonce値を生成する具体例は§.乱数の生成 (GetBytes)をご覧ください。