diff --git a/src/distributions/mod.rs b/src/distributions/mod.rs
index f6dccc1..4a2a4f2 100644
--- a/src/distributions/mod.rs
+++ b/src/distributions/mod.rs
@@ -158,6 +158,7 @@
 //! [`Normal`]: struct.Normal.html
 //! [`Open01`]: struct.Open01.html
 //! [`OpenClosed01`]: struct.OpenClosed01.html
+//! [`Pareto`]: struct.Pareto.html
 //! [`Poisson`]: struct.Poisson.html
 //! [`Standard`]: struct.Standard.html
 //! [`StandardNormal`]: struct.StandardNormal.html
@@ -177,6 +178,8 @@
 #[doc(inline)] pub use self::normal::{Normal, LogNormal, StandardNormal};
 #[cfg(feature="std")]
 #[doc(inline)] pub use self::exponential::{Exp, Exp1};
+#[cfg(feature="std")]
+#[doc(inline)] pub use self::pareto::Pareto;
 #[cfg(feature = "std")]
 #[doc(inline)] pub use self::poisson::Poisson;
 #[cfg(feature = "std")]
@@ -192,6 +195,8 @@
 #[doc(hidden)] pub mod normal;
 #[cfg(feature="std")]
 #[doc(hidden)] pub mod exponential;
+#[cfg(feature="std")]
+#[doc(hidden)] pub mod pareto;
 #[cfg(feature = "std")]
 #[doc(hidden)] pub mod poisson;
 #[cfg(feature = "std")]
diff --git a/src/distributions/pareto.rs b/src/distributions/pareto.rs
new file mode 100644
index 0000000..ba628e0
--- /dev/null
+++ b/src/distributions/pareto.rs
@@ -0,0 +1,76 @@
+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// https://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+//! The Pareto distribution.
+
+use Rng;
+use distributions::{Distribution, OpenClosed01};
+
+/// Samples floating-point numbers according to the Pareto distribution
+///
+/// # Example
+/// ```
+/// use rand::prelude::*;
+/// use rand::distributions::Pareto;
+///
+/// let val: f64 = SmallRng::from_entropy().sample(Pareto::new(1., 2.));
+/// println!("{}", val);
+/// ```
+#[derive(Clone, Copy, Debug)]
+pub struct Pareto {
+    scale: f64,
+    inv_neg_shape: f64,
+}
+
+impl Pareto {
+    /// Construct a new Pareto distribution with given `scale` and `shape`.
+    ///
+    /// In the literature, `scale` is commonly written as x<sub>m</sub> or k and
+    /// `shape` is often written as α.
+    ///
+    /// # Panics
+    ///
+    /// `scale` and `shape` have to be non-zero and positive.
+    pub fn new(scale: f64, shape: f64) -> Pareto {
+        assert!((scale > 0.) & (shape > 0.));
+        Pareto { scale, inv_neg_shape: -1.0 / shape }
+    }
+}
+
+impl Distribution<f64> for Pareto {
+    fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f64 {
+        let u: f64 = rng.sample(OpenClosed01);
+        self.scale * u.powf(self.inv_neg_shape)
+    }
+}
+
+#[cfg(test)]
+mod tests {
+    use distributions::Distribution;
+    use super::Pareto;
+
+    #[test]
+    #[should_panic]
+    fn invalid() {
+        Pareto::new(0., 0.);
+    }
+
+    #[test]
+    fn sample() {
+        let scale = 1.0;
+        let shape = 2.0;
+        let d = Pareto::new(scale, shape);
+        let mut rng = ::test::rng(1);
+        for _ in 0..1000 {
+            let r = d.sample(&mut rng);
+            assert!(r >= scale);
+        }
+    }
+}
