We give an efficient algorithm to generate a graph from a distribution $\epsilon$-close to $G(n,p)$, in the sense of total variation distance. In particular, if $p$ is represented with $O(\log n)$-bit accuracy, then, with high probability, the running time is linear in the expected number of edges of the output graph (up to poly-logarithmic factors). All our running times include the complexity of the arithmetic involved in the corresponding algorithms. Previous standard methods for exact $G(n,p)$ sampling (see e.g. Batagelj and Brandes, 2005) achieve similar running times, however, under the assumption that performing real number arithmetic with arbitrary accuracy takes constant time. We note that the actual accuracy required by these methods is O(n)-bit per step, which results in quadratic running times. The main idea of our $G(n,p)$ generation algorithm is a Metropolis Markov chain to sample $\epsilon$-close from the binomial distribution. This is a new method for sampling from the binomial distribution: it is of separate interest and may find other useful applications. Our analysis accounts for all necessary bit-accuracy and arithmetic, and our running times are comparable to known methods for exact binomial sampling. We further obtain efficient generation algorithms for random graphs with given arbitrary degree distributions, Inhomogeneous Random Graphs when the kernel function is the inner product, and Stochastic Kronecker Graphs. To the best our knowledge, our work can be viewed as the first effort to simulate efficient generation of graphs from classical random graph models, while taking into account implementational considerations as fundamental computational aspects, and quantifying the tradeoff between accuracy and running time in a way that can be useful in practice.