Mobile devices drastically changed how people use the Internet. We use smartphones to access a heterogeneous catalog of web services such as news, social networks, audio/video streaming. Differently from wired connections, mobile networks do not offer the same kind of performance stability yet. Thus, service providers have to handle different network scenarios, e.g., 3G or 4G, while promising good end-users’ quality of experience (QoE). To ensure that QoE is adequate, it is necessary to thoroughly test applications with a wide range of possible network conditions. For this, network emulation is of vital importance as it allows a tester to run experiments with a wide range of network conditions. However, when it comes to mobile networks, the variety of technical characteristics, coupled with the opaque network configurations, makes realistic emulation a challenging task. Most of the freely available emulation tools rely on a simple emulation, offering limited variability performances for each network condition.In this paper, we propose ERRANT, EmulatoR of Radio Access NeTworks, an open-source tool that emulates mobile networks with a high level of realism, following a data-driven approach. We use a large-scale dataset composed of 100 k speed test measurements collected from 4 network operators in 2 countries. We create 32 different network profiles based on different countries, operators, radio access technologies, and signal qualities. For each profile, we obtain both typical behavior and variability for latency, download and upload bandwidth. We use the profiles to create models by means of the Kernel Density Estimation. Then, ERRANT employs the tc-netem Linux tool and the models for emulation. In this way, ERRANT offers realistic network emulation, in which both typical behavior and network variability are accurately recreated.We validate ERRANT models with an independent dataset of HTTP downloads performed on the same mobile networks as of the profiles. Results show the effectiveness of ERRANT in the emulation of real mobile networks in terms of average behavior and obtained variability. We also show the limitations of a simple emulation, and of other freeware approaches versus ERRANT. Finally, we show two practical use cases to demonstrate the benefits of a dynamic emulation in understanding the performance of web browsing and video streaming. To run new measurement campaigns and create new models, we provide guidelines along with the required open-source code.