The n-queens puzzle is to place n mutually non-attacking queens on an n x n chessboard. We present a simple two stage randomized algorithm to construct such configurations. In the first stage, a random greedy algorithm constructs an approximate toroidal n-queens configuration. In this well-known variant the diagonals wrap around the board from left to right and from top to bottom. We show that with high probability this algorithm succeeds in placing (1 (1))n queens on the board. In the second stage, the method of absorbers is used to obtain a complete solution to the non-toroidal problem. By counting the number of choices available at each step of the random greedy algorithm we conclude that there are more than (1- o(1)) ne(-3))(n) solutions to the n-queens problem. This proves a conjecture of Rivin, Vardi, and Zimmerman in a strong form. Recently, using different methods, Bowtell and Keevash proved the same lower bound for the toroidal problem, giving an independent proof of the result.