sub multrand { my ( $inmed, $inmult ) = @_; my $randreturn = 0; # $randtemp is used to determine if result will be more than, less than, or equal to original my $randtemp = int(rand($inmed * 2)); if ( $randtemp > $inmed ) { # $randreturn can be up to $inmed * $inmult $randreturn = int(rand(($inmed*$inmult)-$inmed)) + int($inmed); } elsif ( $randtemp < $inmed ) { # $randreturn can be as little as $inmed / $inmult $randreturn = int(rand($inmed*(1-(1/$inmult)))) + int($inmed*(1/$inmult)); } else { $randreturn = $inmed; } if ( $debug > 2 ) { print "$randreturn\n"; } return $randreturn; }