これに対するより良い解決策が存在するかどうか疑問に思っています。
BitConverter.ToInt32(sample_guid.ToByteArray(), 0)
これ以上の解決策はないと思います。
より良いかどうかはわかりませんが、読みやすいです:
Int32.Parse(sample_guid.ToString().SubString(0,1));
確かに、私はジュニア開発者ですが、上記はバイト変換よりも読みやすく、最新のコンピューターでは見分けがつかないほど速く実行されます。
より良い解決策についてはわかりませんが、その Int32 をランダムな (または一意の) 値として使用するつもりがないことを願っています。
Guid のサブ部分が一意であることに依存することはできません。Guid は、全体が一意であると想定されます。