ArrayList com Randon

Sou nova aqui e não sei como funciona, então se eu estou fazendo errado, desculpa.
Bem o problema é que um professor meu pediu pra fazer esse exercício:
Escreva um programa que cadastre em uma lista numérica de valores inteiros 10 números inteiros aleatórios entre 10 e 100. Ao final, o programa deverá detectar na lista qual o maior número inteiro sorteado e mostrá-lo ao usuário.
Não sei o por que está repedindo quando mostra na tela, por favor alguém poderia me ajudar?

Esse é meu código:

import java.util.ArrayList;
import java.util.Random;

class Main {
public static void main(String[] args) {

ArrayList <Integer> numero = new ArrayList<>();

Random l = new Random(); 
int k = l.nextInt(100+1);

int maior = 10;

for(int a = 10; a != 100; a++){
numero.add(k);
}

for(int m = 0; m < 10; m++){
  System.out.println("Número: " + numero.get(m));
}

for(int d : numero){
  if(d > maior){
    maior = d;
  }

}

System.out.println("O maior número sorteado é: " + maior);

}
}

Estás a adicionar sempre o mesmo número! Vou explicar o teu código:

int k = l.nextInt(100+1);  // obtem um numero aleatório

int maior = 10;

for(int a = 10; a != 100; a++){  //percorre o ciclo 90 vezes (sempre que a != 100)
    numero.add(k);   // adiciona o k gerado lá em cima
}

Penso que queiras rever este for para gerar adicionar só 10 números e não 90 e passar a geração de k para dentro do for para teres sempre números diferentes.

Obrigada, mas não entendi

Você está adicionando o mesmo número gerado aleatoriamente noventa vezes na lista numero.

int k = l.nextInt(101); // Digamos que gerou o número 10;

for (int a = 10; a != 100; a++) {
    numero.add(k); // Vai adicionar o número 10 noventa vezes.
}

Para resolver isso você deveria colocar a variável k dentro do laço for.

for (int a = 10; a != 100; a++) {
    int k = l.nextInt(101);
    numero.add(k);
}

Mas mesmo assim o código continuaria errado, pois o exercício pede para você gerar dez valores aleatórios, não noventa, então refatore o código para que gere apenas os dez números.

Acho que agora entendi, obrigada

Para quem quer o código:
import java.util.ArrayList;
import java.util.Random;

class Main {
public static void main(String[] args) {

ArrayList <Integer> numero = new ArrayList<>();

Random l = new Random(); 

int maior = 10;

for (int a = 0; a != 10; a++) {
int k = l.nextInt( 90 )+ 10;
numero.add(k);
}

for(int m = 0; m < 10; m++){
  System.out.println("Número: " + numero.get(m));
}

for(int i = 0; i < numero.size(); i++){
  if(numero.get(i) > maior){
  maior = numero.get(i);
  }
}

System.out.println("O maior número sorteado é: " + maior);

}
}
Mas não sei se está certo, acho que é isso

Parece estar certo, mas você consegue colapsar tudo em um único laço de repetição.