ActionScript3で、ランダムにカラーコードを生成したいケースがありました。
具体的には「0x999999」から「0xffffff」の値です。ActionScript3では色を扱うときはuint型を使うのですが、これが計算しようとすると結構面倒でした。
以下参考サイトです。
参考
ちなみに、上記サイトは「0x000000」から「0xffffff」までの値を生成する場合の例です。指定した範囲内でやる場合は以下のようにする必要がありました。
ランダムに範囲内の値を生成する場合のコード例
var color:uint = 0x666666 * Math.random() + 0x999999;
「0x999999」を最後に足すことによって、最小の値を「0x999999」にします。
さらに、Math.random()の係数を「0x666666」にします。
これで「0x000000 + 0x999999 = 0x999999」から「0x666666 + 0x999999 = 0xffffff」が生成されるようになります。
その他の例
・最小値を「0x555555」にしたいとき Math.random()の係数を「0xaaaaaa」にする ・最小値を「0x777777」にしたいとき Math.random()の係数を「0x888888」にする
たぶん合っていると思います。。ActionScriptに関わらず、他の言語でも使うことになりそうだ。