I thought I'd share the Rnd class I use for all of my experimental work. It's a very simple collection of utility methods for working with random values, but it has been extremely useful for me. Here's the list of methods:

// random(); 
// returns a number between 0-1 exclusive.
public static function random():Number

// float(50); // returns a number between 0-50 exclusive
// float(20,50); // returns a number between 20-50 exclusive
public static function float(min:Number,max:Number=NaN):Number

// boolean(); // returns true or false (50% chance of true)
// boolean(0.8); // returns true or false (80% chance of true)
public static function boolean(chance:Number=0.5):Boolean

// sign(); // returns 1 or -1 (50% chance of 1)
// sign(0.8); // returns 1 or -1 (80% chance of 1)
public static function sign(chance:Number=0.5):int

// bit(); // returns 1 or 0 (50% chance of 1)
// bit(0.8); // returns 1 or 0 (80% chance of 1)
public static function bit(chance:Number=0.5):int

// integer(50); // returns an integer between 0-49 inclusive
// integer(20,50); // returns an integer between 20-49 inclusive
public static function integer(min:Number,max:Number=NaN):int

Here's a quick example of how I use it:

// vary this mySprite's rotation by between 10-40 degrees.
// rotate clockwise 30% of the time, counterclockwise 70% of the time.
mySprite.rotation += Rnd.sign(0.3)*Rnd.float(10,40);

You can download the Rnd class by clicking here.

I will be releasing my Rndm class tomorrow, which exposes the same interface for a seeded random engine.