My interest in sudokus is mainly within the programming and not the solving, and so I'm in the process of making a program, part of which will use random sudokus.

Thus I've been wondering, if it is possible to determine if a certain pattern is valid for any particular order of numbers, without actually filling in the numbers but just using the information of which fields should have a number. Are there other rules for determining valid sudoku patterns besides checking if the number of filled fields is bigger than or equal to 17, or can all patterns that obey that rule, be valid?