#! /usr/bin/perl open(RND, '<', '/dev/urandom') or die; sub id { local $/ = \20; unpack 'H40', } # random ID sub nk { int 1000**(1+rand 42)**-1 } # shaped rnd my @S = map id, 1 .. 20_000; do { print "$_|$S[rand@S]\n" for (id) x nk } for 1 .. 30_000_000;