private boolean addRandomCell() {
        List<Integer> emptyCells = getEmptyCellIds();
        
        int listSize=emptyCells.size();
        
        if(listSize==0) {
            return false;
        }
        
        int randomCellId=emptyCells.get(randomGenerator.nextInt(listSize));
        int randomValue=(randomGenerator.nextDouble()< 0.9)?2:4;
        
        int i = randomCellId/BOARD_SIZE;
        int j = randomCellId%BOARD_SIZE;
        
        setEmptyCell(i, j, randomValue);
        
        return true;
    }