real, dimension(100) :: b
integer(int8), dimension(100) :: a
callrandom_number(b)
a = b*256 - 128
Fortran has no "byte" type per se, but it has (if supported) an integer type with 8 bits, which has the kind from iso_fortran_env. The intrinsic subroutine random_number returns random numbers in the range of [0..1[.
import"crypto/rand"
_, err := rand.Read(a)
The package crypto/rand is secure (but slower than math/rand)
my $s = random_bytes( $number_of_bytes );
my @a = split//, $s;
Perl doesn't have byte arrays per se. Bytes::Random from CPAN will generate a string of random bytes. Splitting that on an empty regex in list context will return the bytes in a list.
my $n = 20;
my $bytestring;
foreachmy $i (0 .. $n*8 - 1) {
vec($bytestring, $i, 1) = rand(2);
}
Use perl builtin vec() function to set bits by indexing into a scalar. Perl will add bytes to the string as needed - which means the actual bitcount will always be in increments of 8.