We present a high-energy neutrino event generator, called LeptonInjector, alongside an event weighter, called LeptonWeighter. Both are designed for large-volume Cherenkov neutrino telescopes such as IceCube. The neutrino event generator allows for quick and flexible simulation of neutrino events within and around the detector volume, and implements the leading Standard Model neutrino interaction processes relevant for neutrino observatories: neutrino-nucleon deep-inelastic scattering and neutrino-electron annihilation. In this paper, we discuss the event generation algorithm, the weighting algorithm, and the main functions of the publicly available code, with examples. Program summary: Program Titles: LeptonInjector and LeptonWeighter CPC Library link to program files: https://doi.org/10.17632/662gkpjfd9.1 Developer's repository links: https://github.com/icecube/LeptonInjector and https://github.com/icecube/LeptonWeighter Licensing provisions: GNU Lesser General Public License, version 3. Programming Language: C++11 External Routines: • Boost • HDF5 • nuflux (https://github.com/icecube/nuflux) • nuSQuIDS (https://github.com/arguelles/nuSQuIDS) • Photospline (https://github.com/icecube/photospline) • SuiteSparse (https://github.com/DrTimothyAldenDavis/SuiteSparse) Nature of problem: LeptonInjector: Generate neutrino interaction events of all possible topologies and energies throughout and around a detector volume. LeptonWeighter: Reweight Monte Carlo events, generated by a set of LeptonInjector Generators, to any desired physical neutrino flux or cross section. Solution method: LeptonInjector: Projected ranges of generated leptons and the extent of the detector, in terms of column depth, are used to inject events in and around the detector volume. Event kinematics follow distributions provided in cross section files. LeptonWeighter: Event generation probabilities are calculated for each Generator, which are then combined into a generation weight and used to calculate an overall event weight.