最大範囲内でランダムな整数を生成する必要があります。パフォーマンスが重要であるため、Java の Random クラスの代わりに XORShift ジェネレーターを使用することにしました。
long seed = System.nanoTime();
seed ^= (seed << 21);
seed ^= (seed >>> 35);
seed ^= (seed << 4);
この実装(ソース)は long 整数を提供しますが、実際に必要なのは 0 から最大値までの整数です。
public int random(int max){ /*...*/}
このメソッドを実装する最も効率的な方法は何ですか?