diff --git a/scripts/backup b/scripts/backup
index a590072..5e07748 100755
--- a/scripts/backup
+++ b/scripts/backup
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -T
+#!/usr/bin/perl
 use warnings;
 use strict;
 use Simba::CA;
@@ -55,11 +55,22 @@ my @backup_dirs = map {
 			    = statvfs($_);
 			[ $_, $bsize * $bavail ]
                       } glob("/backup/*/active");
-@backup_dirs = sort { $b->[1] <=> $a->[1] } @backup_dirs;
-unless (@backup_dirs) {
+my $sum_free = 0;
+$sum_free += $_->[1] for (@backup_dirs);
+my $rnd = rand() * $sum_free;
+my $count_free = 0;
+my $backup_dir;
+for(@backup_dirs) {
+    $count_free += $_->[1];
+    if ($count_free >= $rnd) {
+	$backup_dir = $_->[0];
+	last;
+    }
+}
+unless ($backup_dir) {
     $ca->log(0, "no backup directory found");
     exit(1);
 }
-$ca->basedir($backup_dirs[0][0]);
+$ca->basedir($backup_dir);
 
 $ca->run();