Just before OFPEC went down I started on a script (suite of scripts and functions) to do this. I've been waiting for OFPEC to be back to submit this. The scripts and functions have descriptive headers, but if you have any questions just let me know and I will be glad to help you implement it. Here is what it can do:
Finds an LZ of a size you specify, in a search area you specify, with a slope that you specify. It also makes sure the area is not in forest, not over water and not over other obstacles (buildings, trees, etc.).
To use it just put the Find_LZ folder in you mission folder, then in your init.sqs put this line:
[] exec "Find_LZ\find_LZ_init.sqs"
Once the Editor Depot is up and running I will submit a more formal version with a test mission and all.
Also, I made a script called fastland.sqs that forces a chopper to land where you want. So you can use the above to find the LZ , then use fastland to make the chopper actually land there. It is not in this folder and I cannot find it now. I will search for that tomorrow and add that as well.
See post below for newer version of find_LZ