Olá, Danielle, como vai?
O seu código seguiu corretamente a lógica do desafio e o uso das classes Scanner e Random foi aplicado de forma adequada para o controle de fluxo do jogo de adivinhação. A implementação do loop com a condição de interrupção break demonstra um bom entendimento sobre como gerenciar as tentativas do usuário. É interessante notar que você utilizou o fechamento do scanner com sc.close(), o que é uma boa prática de programação para o gerenciamento de recursos.
O exercício está muito bem executado e agradeço por compartilhar sua solução. Continue praticando e postando seus projetos. O fórum está à disposição para qualquer dúvida ou troca de conhecimentos.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!