rand(0x100 - 2) + 2

Why not just use

sub mac { return join ':', '00:96:14', sprintf('%02X', rand(0x30)), sprintf('%02X', rand(0x100)), sprintf('%02X', rand(0x100)); }