I'm trying to make an application that cuts image into jigsaw puzzles. My problem is that I don't know how to do this (any kind of algorithm). I do want to have male and female endings of puzzles, but not in the same place all the time (like in the middle of puzzle border) so this: <https://stackoverflow.com/questions/2755389/how-to-create-jigsaw-image-puzzle-using-c> solution doesn't fit me.

Is there any kind of "smart" algorithm to make this happens. I was thinking about using bezier curves, but I don't know how to do this right.