Tentando obter números inteiros mais baixos

Então, eu tenho 4 list, eu quero descobrir qual list.size (); é o mais baixo. Eu posso encontrar o menor, mas alguns acabam sendo os mesmos, é isso que eu tenho.

              if(EAmount < DAmount && EAmount < GAmount && EAmount < IAmount){
        FinalDecision = "Emerald";
    }else if(DAmount < EAmount && DAmount < GAmount && DAmount < IAmount){
        FinalDecision = "Diamond";
    }else if(GAmount < EAmount && GAmount < DAmount && GAmount < IAmount){
        FinalDecision = "Gold";
    }else if(IAmount < EAmount && IAmount < DAmount && IAmount < GAmount){
        FinalDecision = "Iron";
    }

Embora eu precise verificar o menor valor do que escolher um aleatório entre os dois, no caso. Por exemplo, se EAmount e DAmount são 2, mas Gold e Iron são 3 e 4. Quero que ele descubra que EAmount e DAmount são 2 e escolha um deles aleatoriamente. Então, apesar de tudo "Eu quero que ele encontre o menor int, se houver mais de um menor int escolha uma aleatória entre eles". Como eu faria isso? BTW: Nem sempre será assim que EAmount e DAmount são iguais. Todas essas variáveis são completamente aleatórias.

questionAnswers(3)

yourAnswerToTheQuestion