Let S be an operator system -- a self-adjoint linear subspace of a unital C*-algebra A such that contains 1 and A=C*(S) is generated by S. A boundary representation for S is an irreducible representation \pi of C*(S) on a Hilbert space with the property that $\pi\restriction_S$ has a unique completely positive extension to C*(S). The set $\partial_S$ of all (unitary equivalence classes of) boundary representations is the noncommutative counterpart of the Choquet boundary of a function system $S\subseteq C(X)$ that separates points of X. It is known that the closure of the Choquet boundary of a function system S is the Silov boundary of X relative to S. The corresponding noncommutative problem of whether every operator system has ``sufficiently many" boundary representations was formulated in 1969, but has remained unsolved despite progress on related issues. In particular, it was unknown if $\partial_S$ is nonempty for generic S. In this paper we show that every separable operator system has sufficiently many boundary representations. Our methods use separability in an essential way.