#! perl -slw use strict; our $N ||= 10_000; our $MEAN ||= 75; sub skewedRnd { my( $start, $end, $skewedMean ) = @_; my $skewFactor = $skewedMean - ( ( $end - $start ) / 2 ); return $start + rand( $end - $start ) + rand( $skewFactor * 2 ); } my $total; $total += skewedRnd( 0, 100, $MEAN ) for 1 .. $N; print $total / $N; __END__ [21:56:57.38] P:\test>425761 -N=100000 -MEAN=75 75.060163192749 [21:57:13.74] P:\test>425761 -N=100000 -MEAN=32 32.1195869335938