Online social networks (OSNs) often refuse to publish their social network graphs due to privacy concerns. Recently, differential privacy has become the widely accepted criteria for privacy preserving data publishing. Although some work has been done on publishing matrices with differential privacy, they are computationally unpractical as they are not designed to handle large matrices such as adjacency matrices of OSN graphs. In this paper, we propose a random matrix approach to OSN data publishing, which achieves storage and computational efficiency by reducing dimensions of adjacency matrices and achieves differential privacy by adding a small amount of noise. Our key idea is to first project each row of an adjacency matrix into a low-dimensional space using random projection, and then perturb the projected matrix with random noise, and finally publish the perturbed and projected matrix. In this paper, we first prove that random projection plus random perturbation preserve differential privacy, and also that the random noise required to achieve differential privacy is small. We validate the proposed approach and evaluate the utility of the published data for three different applications, namely node clustering, node ranking, and node classification, using publicly available OSN graphs of Facebook, LiveJournal, and Pokec.