Change the implementation to use :order => :default and :random.

Also adds specs.

Signed-off-by: Sam Phippen <samphippen@googlemail.com>