This program allows you to make automatically generated puzzles. Each time you run the program you get a new puzzle. The program (though not customizer version) also allows you to turn any stl into a puzzle.
Customizer allows you to choose piece sizes, number of rows and columns, piece thickness and piece spacing. The OpenSCAD program allows you to control almost every aspect of the piece.
The program is pretty well documented so hopefully most of the questions are answered there.
You may need to experiment to see what values work best on your printer, such as the one that controls the spacing between the pieces. Too small and they fuse together.
I have been printing these on a raft so the first layer isn't smashed down and fusing the pieces.
Huge thanks to ckirby whose Bezier Library (thing:86713) made this possible.