PuppetCast is a protocol for secure peer sampling in large-scale distributed systems. A peer sampling protocol continuously provides each node in the system with a uniform random sample of the node population, and is an important building block for gossip-based protocols for information dissemination, aggregation, load balancing and network management. Existing peer sampling protocols are either very vulnerable to attacks by malicious nodes, do not scale to large systems or provide only a static sample of the population. PuppetCast continues to operate when 50% (or more) of the nodes are acting maliciously, is shown to scale to systems of significant size and continuously provides new samples.