"Não especificado" e "aleatório" são dois conceitos completamente diferentes.
O funcionamento exato de um coletor de lixo não é especificado e depende do coletor de lixo (geralmente implementado por uma VM das sortes, mas não necessariamente).
Portanto, você não tem um tempo especificado (isto é, determinístico) no qual o lixo será coletado.
No entanto, qualquer implementação dada seguirá algumas regras e há uma grande chance de que duas execuções subseqüentes do mesmo programa tenham padrões de coleta de lixo muito semelhantes.
Portanto, a entropia real fornecida por um coletor de lixo seria muito baixa (e descobrir quais partes você pode realmente usar como entropia será complicado).
Como comparação: A HashMap
em Java não garante nenhuma ordem de recuperação para seus membros (basicamente porque garantir isso acrescentaria uma sobrecarga que não vale a pena pagar, na maioria das vezes). No entanto, para uma determinada implementação e um determinado conjunto de inserções / remoções, você pode definitivamente calcular o pedido resultante. Só porque não há garantia para um determinado pedido, não significa que o pedido seja aleatório.