Q:

Random sem repetição

Bom tenho uma dúvida que ta me matando já tem tempo, e não consigo resolver. 
PS: Sou iniciante em Android.
Estou desenvolvendo um aplicativo de sorteio, mas não estou conseguindo de forma alguma gerar um Random sem repetir os números já sorteados, já tentei de tudo, mas ainda assim ele repete o número.
Segue o Código:
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.activity_main); 

    final NumberPicker InicialNP = (NumberPicker) findViewById(R.id.inicialID);

        InicialNP.setMinValue(0);       
        InicialNP.setMaxValue(700);     
        InicialNP.setWrapSelectorWheel(true);

        InicialNP.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
            @Override
 public void onValueChange(NumberPicker picker, int oldVal, int newVal){

            }
        });

    final NumberPicker FinalID = (NumberPicker) findViewById(R.id.finalID);

        FinalID.setMinValue(0);       
        FinalID.setMaxValue(700);       
        FinalID.setWrapSelectorWheel(true);

        FinalID.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
        @Override
 public void onValueChange(NumberPicker picker, int oldVal, int newVal){

           }
        });

        EditText Nomesorteio = (EditText) findViewById(R.id.nomesorteioID);
        EditText Resultado = (EditText) findViewById(R.id.resultadoID);
        Button Sortear = (Button) findViewById(R.id.btnsortear);            
        Sortear.setOnClickListener(new View.OnClickListener() {     

    private int mostrarresultado() {    

          inicial = InicialNP.getValue();
          finall = FinalID.getValue();
          Random Random = new Random();
          int Resultado = Random.nextInt(finall + 1 - inicial) + inicial;  

          return  Resultado;                      
        }

    private void verifyRepeated(int removeValue) {

          int getParams = removeValue;
          Random random = new Random();
          getParams = random.nextInt(finall + 1 - inicial) + inicial;   

            while(true)
                    {
                if(!repeat_list.contains(getParams))
                    break;
                else                        
                    getParams = random.nextInt(finall + 1 - inicial) + inicial;
            }

            repeat_list.add(getParams);
            Toast.makeText(MainActivity.this, "O valor sorteado foi: " + Integer.toString(removeValue), Toast.LENGTH_LONG).show();
        }

        @Override
        public void onClick(View v) {     
            list.clear();
            click = MediaPlayer.create (MainActivity.this, R.raw.click); 
            click.start ();
            Toast.makeText(MainActivity.this, "Sorteando", Toast.LENGTH_LONG).show();               
            int Resultado = mostrarresultado();

            verifyRepeated(Resultado);

        } 

    });

}

}

A:

Tente armazenar seus valores em um Set<Integer>. O tipo de dado Set é uma lista que não armazena valores repetidos. Com isso você irá garantir que os valores armazenados não se repitam.
PS: Integer é uma classe wrapper do tipo primitivo int.

A:

Você deve usar o comando Collections.shuffle(), dessa forma sempre será um número aleatório e não irá repetir, exemplo:
ArrayList<Integer> number = new ArrayList<Integer>();
for (int i = inicial; i <= finall; ++i){
    number.add(i);
}
Collections.shuffle(number);

A:

Faça dessa forma:
private static ArrayList<Integer> repeat_list = new ArrayList();

private int inicial;
private int finall;

private int mostrarresultado() {                    
    inicial = editTextInicial.getValue();
    finall = editTextFinal.getValue();
    Random Random = new Random();
    int Resultado = Random.nextInt(finall + 1 - inicial) + inicial;  

    return  Resultado;                      
}

private void verifyRepeated(int removeValue)
{
    int getParams = removeValue;
    while(true)
    {
        if(!repeat_list.contains(getParams))
            break;
        else
            getParams = Random.nextInt(finall + 1 - inicial) + inicial;
    }

    repeat_list.add(getParams);
    Toast.makeText(MainActivity.this, "O valor sorteado foi: " + removeValue.toString(), Toast.LENGTH_LONG).show();

}

@Override
public void onClick(View v) {     
    list.clear();
    click = MediaPlayer.create (MainActivity.this, R.raw.click); 
    click.start ();
    Toast.makeText(MainActivity.this, "Sorteando", Toast.LENGTH_LONG).show();               
    int Resultado = mostrarresultado();

    verifyRepeated(Resultado);

} 

