上記のYoutube でも言われているように、連続したシードによって乱数を生成すると偏りが出てしまうようなので調査してみました
固定しない乱数
まずは毎回シードを固定化せずに生成しています
for (var x = 0; x < size; x++) { for (var y = 0; y < size; y++) { var color = Random.Range(0, 2) == 0 ? Color.black : Color.white; texture.SetPixel(x, y, color); } }
期待どおりの結果になりました

固定する乱数
次に毎回乱数の固定を利用してやってみます
var i = 0; for (var x = 0; x < size; x++) { for (var y = 0; y < size; y++) { Random.InitState(i++); var color = Random.Range(0, 2) == 0 ? Color.black : Color.white; texture.SetPixel(x, y, color); } }
規則的な結果となりました

固定はするもののしばらく使い回す
x のときのみ乱数を固定化してみます
for (var x = 0; x < size; x++) { Random.InitState(x); for (var y = 0; y < size; y++) { var color = Random.Range(0, 2) == 0 ? Color.black : Color.white; texture.SetPixel(x, y, color); } }
期待どおりの結果になりました

乱数の幅を変える
0~1 の乱数から 0 ~255 の乱数に変更して試してみます
for (var x = 0; x < size; x++) { for (var y = 0; y < size; y++) { Random.InitState(x); var v = (byte)Random.Range(0, 256); var color = new Color32(v, v, v, 255); texture.SetPixel(x, y, color); } }
規則的な結果となりました

疑似乱数をかます
動画にあったように xxhash をかましてから生成する
for (var x = 0; x < size; x++) { for (var y = 0; y < size; y++) { Random.InitState(XXHash(x, y)); var color = Random.Range(0, 2) == 0 ? Color.black : Color.white; texture.SetPixel(x, y, color); } }
期待どおりの結果になりました

結果
Random.InitState を利用する際のシードが近しい値の場合乱数にばらつきが見られないことがあるので
そういった場合は動画の通りハッシュ関数を利用してシードを変更したほうがよさそうでした