title: Java: How to randomize an array list without duplicates
body: <pre><code>import java.util.Random;
  
  public class Sudoku {
    int[][] SquareNumbers = { 
        { 4, 3, 5, 8, 7, 6, 1, 2, 9 }, { 8, 7, 6, 2, 1, 9, 3, 4, 5 }, { 2, 1, 9, 4, 3, 5, 7, 8, 6 },
        { 5, 2, 3, 6, 4, 7, 8, 9, 1 }, { 9, 8, 1, 5, 2, 3, 4, 6, 7 }, { 6, 4, 7, 9, 8, 1, 2, 5, 3 },
        { 7, 5, 4, 1, 6, 8, 9, 3, 2 }, { 3, 9, 2, 7, 5, 4, 6, 1, 8 }, { 1, 6, 8, 3, 9, 2, 5, 7, 4 } };
  
    Random Digits = new Random(); // random numbers to exchange Rows
    Random HiddenNumbers = new Random();
    int Grid[][] = new int[9][9];
  
    public int[][] Generator() {
      for (int x = 0; x &lt; Digits.nextInt(); x++) {
        for (int da = 0; da &lt; 3; da++) {
  
        }
      }
  
      return SquareNumbers;
    }
  
    int[][] Hide() {
      for (int i = 0; i &lt; 9; i++)
        for (int j = 0; j &lt; 9; j++)
          Grid[i][j] = SquareNumbers[i][j];
  
      int Row, Columns, Concealer;
  
      Concealer = 55 + Digits.nextInt(1);
  
      for (int i = 0; i &lt; Concealer; i++) {
        Row = HiddenNumbers.nextInt(9);
        Columns = HiddenNumbers.nextInt(9);
        Grid[Row][Columns] = -1;
      }
      return Grid;
    }
  
    public int[][] getSquareNumbers() {
      return SquareNumbers;
    }
  
    public void setSquareNumbers(int[][] SquareNumbers) {
      this.SquareNumbers = SquareNumbers;
    }
  
    private static Sudoku instance = null;
  
    protected Sudoku() {
      // Exists only to defeat instantiation.
    }
  
    public static Sudoku getInstance() {
      if (instance == null) {
        instance = new Sudoku();
      }
      return instance;
    }
  }
  </code></pre>
  
  <p>Instead of a double array list, is there a way to randomize it so it works like a Sudoku game? As in it has no duplicates within columns or rows and every three by three smaller grid uses a number once?</p>