Is there an efficient algorithm to find the i-th dearrangement?
Actually this is might be good question but it is badly formulated in its current form. The well-known algorithms for generating random derangements have linear expected time, but maybe it's an open problem to find a worst case polynomial time algorithm.

See for example:
http://www.siam.org/proceedings/analco/2008/anl08_022martinezc.pdf (and slides: http://www.lsi.upc.edu/~conrado/research/talks/analco08.pdf)