あなたのコードは以下とほぼ同等です:
int arr1[]={1,2,3,4,5,6,7,8,9,10};
int num = arr1[(int)(Math.random()*10)];
one.setText(""+num);
two.setText(""+num);
three.setText(""+num);
そのため、同じ数が 3 回表示されます。
配列の代わりにRandom#nextInt(int n)を使用し、3 つの乱数を生成する必要があります。
Random r = new Random();
one.setText(Integer.toString(1 + r.nextInt(10)));
two.setText(Integer.toString(1 + r.nextInt(10)));
three.setText(Integer.toString(1 + r.nextInt(10)));
また、数字を繰り返さないようにしたい場合は、たとえば Set を使用できます。
Random r = new Random();
Set<Integer> randomNumbers = new HashSet<Integer>();
while(randomNumbers.size() <= 3){
//If the new integer is contained in the set, it will not be duplicated.
randomNumbers.add(1 + r.nextInt(10));
}
//Now, randomNumbers contains 3 differents numbers.