RANDOM não é uma variável de ambiente. É uma variável de shell mantida por alguns shells. Geralmente não é exportado por padrão. É por isso que ele não aparece na saída de env .
Uma vez que tenha sido usado pelo menos uma vez, apareceria na saída de set , que, por si só, lista as variáveis (e funções) do shell e seus valores no shell atual sessão. Este comportamento é dependente do shell e usando pdksh no OpenBSD, RANDOM seria listado por set mesmo se não usado anteriormente.
O restante dessa resposta diz respeito ao que poderia acontecer se RANDOM fosse exportado (ou seja, transformado em uma variável de ambiente).
Exportá-lo com export RANDOM tornaria uma variável de ambiente, mas seu uso seria seriamente limitado, pois seu valor em um processo filho seria "aleatório, mas estático" (significando que seria um número aleatório imutável). O comportamento exato difere entre os shells.
Estou usando pdksh no OpenBSD no exemplo abaixo e recebo um novo valor aleatório em cada awk run (mas o mesmo valor toda vez dentro da mesma awk instance ). Usando bash , eu obteria exatamente o mesmo valor aleatório em todas invocações de awk .
$ awk 'BEGIN { print ENVIRON["RANDOM"], ENVIRON["RANDOM"] }'
25444 25444
$ awk 'BEGIN { print ENVIRON["RANDOM"], ENVIRON["RANDOM"] }'
30906 30906
Em bash , o valor exportado de RANDOM permaneceria estático, independentemente do uso de RANDOM no shell (em que cada uso de $RANDOM ainda forneceria um novo valor).
Isso ocorre porque cada referência à variável shell RANDOM in bash faz o shell acessar sua função get_random() interna para dar à variável um novo valor aleatório, mas o shell não atualize a variável de ambiente RANDOM . Isso é semelhante no comportamento de outras variáveis bash dinâmicas, como LINENO , SECONDS , BASHPID etc.
Para atualizar a variável de ambiente RANDOM in bash , você deve atribuir a ela o valor da variável de shell RANDOM e reexportá-la:
export RANDOM="$RANDOM"
Não está claro para mim se isso teria o efeito colateral adicional de semear o gerador de números aleatórios em bash ou não (mas um palpite seria que isso não acontece).