Вот эта строка кода добавляет обязательную цифру array[r.nextInt(8)] = (char)(r.nextInt(10) + 48); public static ByteArrayOutputStream getPassword() { ByteArrayOutputStream bos = new ByteArrayOutputStream(8); Random r = new Random(); List<Character> list = new ArrayList<>(); for(int i = 48; i < 58; i++) list.add((char)i); for(int i = 65; i < 91; i++) list.add((char)i); for(int i = 97; i < 123; i++) list.add((char)i); char[] array = new char[8]; array[r.nextInt(8)] = (char)(r.nextInt(10) + 48); array[r.nextInt(8)] = (char)(r.nextInt(26) + 65); array[r.nextInt(8)] = (char)(r.nextInt(26) + 97); for(int i = 0; i < array.length; i++) { if ((int)array[i] == 0) array[i] = list.get(r.nextInt(list.size())); } String result = new String(array); try { bos.write(result.getBytes()); } catch (IOException e) { e.printStackTrace(); } return bos; }