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)をご覧ください。