The percentile bootstrap is the Swiss Army Knife of statistics: it is a non-parametric method based on data-driven simulations. It can be applied to many statistical problems, as a substitute to standard parametric approaches, or in situations where parametric methods do not exist. In this tutorial, we cover R code to implement the percentile bootstrap in a few situations: one-sample estimation and the comparison of two independent groups for measures of central tendency (means and trimmed means) and spread. For each example, we explain how to derive a bootstrap distribution, and how to get a confidence interval and a p value from that distribution. We also demonstrate how to run a simulation to assess the behaviour of the bootstrap. In some situations, the bootstrap performs poorly, such as when making inferences about the mean. But for other purposes, it is the only known method that works well over a broad range of situations, such as when comparing medians and there are tied (duplicated) values. More broadly, combining the percentile bootstrap with robust estimators, i.e. estimators that are not overly sensitive to outliers, the bootstrap can help users gain a deeper understanding of their data, relative to conventional methods.