Oi Marcelo! Tudo tranquilo por aí?
Por padrão, os imports são sempre colocados no início do desenvolvimento de todo o código, inclusive antes da definição de funções. É uma convenção de escrita de arquivos python.
Mas se eu entendi corretamente, você quer saber porque o comando import random não foi adicionado na função jogar_adivinhacao, certo?
No caso, a função def jogar_adivinhacao(), foi defiinida para que, quando importássemos o arquivo adivinhacao.py no código do jogos.py, os comandos que estivessem no arquivo adivinhacao fossem executados apenas quando chamados e não tudo de uma vez no logo início do programa.
Entretanto, não é necessário adicionar o comando import random dentro definição da função. Isso porque, quando importamos o arquivo adivinhacao.py o import random, que está nesse arquivo, já é automaticamente executado e a importação da biblioteca random é feita, sem a necessidade de colocá-lo dentro da função.
Qualquer dúvida estou por aqui, tá bom?
Bons estudos!