A certain auditorium has 30 rows of seats. Row 1 has 11 seats, while Row 2 has 12 seats, Row 3 has 13 seats, and so on to the back of the auditorium where Row 30 has 40 seats. A door prize is to be given away by randomly selecting a row (with equal probability of selecting any of the 30 rows) and then randomly selecting a seat within that row (with each seat in the row equally likely to be selected). 
Now, 
1) Find the probability that Seat 15 was selected given that row 20 was selected ?
2) Find the probability that Row 20 was selected given that Seat 15 was selected ?

To answer the first, given that Row 20 was selected, there are 30 possible seats in Row 20 that are equally likely to be selected. Hence Pr(Seat 15 | Row 20) = 1/30. 
The same kind of argument can be given to answer the second : given that Seat 15 was selected, there are 30 possible rows that are equally likely to be selected. Hence Pr(Row 20 | Seat 15) = 1/30. 

Now, it turns out that the first answer is correct whereas the second answer is incorrect. My question is where am I making mistakes in computing the second answer ? 

To answer your question on "a good, ideally quick way to generate correlated random numbers":
Given a desired variance-covariance matrix $C$ that is by definition positive definite, the Cholesky decomposition of it is: $C$=$LL^T$; $L$ being lower triangular matrix. 

If you now use this matrix $L$ to project an uncorrelated random variable vector $X$, the resulting projection $Y = LX$ will be that of correlated random variables.

You can find an concise explanation why this happens here.
