I found this cool site that generates random, adjustable jigsaw puzzles with SVG output. I'm using it to make some puzzles for the kids and it's been working great! Put in the number of pieces in x and y, the dimensions, a starting seed and then adjust the tab size and "jitter" to suit. The pieces lock together nicely.
Hardware eventually fails. Software eventually works.