Como sortear valores para busca?

A dúvida é a seguinte:

Tenho um arquivo com vários valores e quero sortear esses valores para busca.
Exemplo:
Arquivo .txt com os nomes Carlos, Samuel e Diogo.

Quero saber como sortear esses valores aleatoriamente com a função Random.
Como faço isso?

Obrigado desde já.

O método random que eu conheço está na classe Math e só consegue trabalhar com números numa faixa de 0.0 até 0.99.

O que você pode fazer é colocar um índice na frente de cada nome no arquivo por exemplo, depois com o método random() multiplicar pelo índice e obter o nome aleatoriamente.

Também depende de como esses nomes estão no arquivo, um após o outro na mesma linha ou cada um em uma linha separada?

Ok, peço desculpas pela falha na expressão.

O que eu quero é saber como sortear nomes, números e nomes com números em um único arquivo para deixá-los em ordem aleatória.

Ex: Ana2019
676322
02Cláudioxxw2
Beto
Isa21ac765
Cristina
029392

A lista é grande, mais ou menos com uns 30.000 “valores”, como eu citei antes.
Tem como fazer?
Todos em linhas separadas.

Entendi, nesse caso você precisa identificar a linha de alguma forma para ser sorteada correto? Poderia ser dessa forma:

1Ana2019
2676322
302Cláudioxxw2
4Beto
5Isa21ac765
6Cristina
7029392

Acrescentei um índice na frente de cada linha, depois na hora de sortear você pode usar o Math.random() * índice da linha

E quando exibir a palavra sorteada, lembre-se de remover o primeiro caracter (índice no caso), usando:

palavra.substring(1, palavra.length);

Tenta jogar um índice para cada valor.
Ex:
[0] Maria
[1] João
[2] Jose.

E depois fazer um sorteio.
Pra fazer o ídice tente pegar o arquivo por quebra de linha. Algo como ‘/n’
Adicionar em um array.
Depois so fazer um sorteio e pegar o indice.

Não sei se fui claro.

[quote=wellington.nogueira]Leia todos os nomes, coloque-os em uma Collection. Depois utilize o random para obter um índice e use o método get(int index).
Estou supondo que você saiba utilizar o random.

Se quiser os nomes ordenados, escolha adequadamente a Collection para isso ;)[/quote]

Também acho uma boa idéia, evita até ficar lendo arquivo e tratando string’s desnecessariamente, vivendo e aprendendo.

[quote=madrugalee][quote=wellington.nogueira]Leia todos os nomes, coloque-os em uma Collection. Depois utilize o random para obter um índice e use o método get(int index).
Estou supondo que você saiba utilizar o random.

Se quiser os nomes ordenados, escolha adequadamente a Collection para isso ;)[/quote]

Também acho uma boa idéia, evita até ficar lendo arquivo e tratando string’s desnecessariamente, vivendo e aprendendo.[/quote]

Ok, vou fazer isso depois posto aqui o resultado.

Pergunta. Você quer embaralhar (em inglês, “shuffle”) o arquivo de entrada (ou seja, você tem 30.000 entradas e quer criar outro arquivo com 30.000 entradas) ou você quer fazer um sorteio (em inglês, “draw”) para escolher algumas poucas entradas?

Leia todos os nomes, coloque-os em uma Collection. Depois utilize o random para obter um índice e use o método get(int index).
Estou supondo que você saiba utilizar o random.

Se quiser os nomes ordenados, escolha adequadamente a Collection para isso :wink: