生成される乱数に0が含まれないようにしたい場合は、GetNonZeroBytesメソッドを使うことができます。

RandomNumberGenerator.GetNonZeroBytesメソッドでバイト配列を非ゼロの乱数で満たす
using System;
using System.Security.Cryptography;

class Sample {
  static void Main()
  {
    using var rng = RandomNumberGenerator.Create();

    // RandomNumberGeneratorを使って0を含まない、16バイトのnonce値を3個生成する
    var nonce = new byte[16];

    for (var i = 0; i < 3; i++) {
      rng.GetNonZeroBytes(nonce);

      Console.WriteLine(BitConverter.ToString(nonce));
    }
  }
}
実行結果の一例
FE-E5-5B-48-5F-4C-8E-8A-1C-AE-58-51-A2-8C-E4-A0
2C-69-84-60-A9-67-B1-27-CD-BA-23-68-57-A0-D3-CE
01-81-99-64-30-52-67-2F-41-95-0A-A0-F8-39-A7-07

MENTAにてテキストチャットによるサポートを行っています。 問題の解決法をお探しの方や.NET/C#を学習中の方はどうぞご利用ください。