diff --git a/Random/__pycache__/stats.cpython-311.pyc b/Random/__pycache__/stats.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..99b30e77125b8e59c18d27673114aa526b93eba2
Binary files /dev/null and b/Random/__pycache__/stats.cpython-311.pyc differ
diff --git a/Random/main.py b/Random/main.py
index 1d4c0040bb8f8b42a71f47a307a0421e5792106f..4af170438c93867a6e685e2bdb1ca1bf8e68d28f 100755
--- a/Random/main.py
+++ b/Random/main.py
@@ -3,7 +3,10 @@ import graph
 from datetime import datetime
 import matplotlib.pyplot as plt
 import numpy as np
+import stats
+import scipy
 import seaborn as sns
+import csv
 
 #shut up stupid warnings from not "the-most-up-to-date" libraries
 import warnings
@@ -43,6 +46,31 @@ def iteratives(N, seed, generator):
         results[name] = res
     return results
 
+def write_stats(data, name):
+    fields=["name","quantil25", "quantil50", "quantil75", "mean"
+            , "variance", "skew", "exckurt"] 
+    quantil25 = np.quantile(data,0.25)
+    quantil50 = np.quantile(data,0.5)
+    quantil75 = np.quantile(data,0.75)
+    mean      = np.mean(data)
+    variance  = np.var(data)
+    skew      = scipy.stats.skew(data)
+    exckurt   = scipy.stats.kurtosis(data) - 3
+    #write file
+    with open(name+'.csv', 'w', newline='') as csvfile:
+        datawriter = csv.DictWriter(csvfile, fieldnames=fields)
+        datawriter.writeheader()
+        datawriter.writerow({
+                    "name" : name,
+                    "quantil25" : str(quantil25),
+                    "quantil50" : str(quantil50),
+                    "quantil75" : str(quantil75),
+                    "mean"      : str(mean),
+                    "variance"  : str(variance),
+                    "skew"      : str(skew),
+                    "exckurt"   : str(exckurt)})
+    return
+
 if __name__=="__main__":
     ##INIT PARAMS##
     N = 100
@@ -70,3 +98,6 @@ if __name__=="__main__":
     
     graph.compare(0, RESOLUTION, seed
                   , iteratives([1000, 10, 100], seed, ParkMiller()))
+    print(stats.chisquared_uniform(data["ParkMiller"],N))
+    print(np.quantile(data["ParkMiller"],0.25))
+    write_stats(data["ParkMiller"],"ParkMiller")
diff --git a/Random/stats.py b/Random/stats.py
new file mode 100644
index 0000000000000000000000000000000000000000..6b1b11d9ced8c32249df61062f1ac66e056fbb78
--- /dev/null
+++ b/Random/stats.py
@@ -0,0 +1,19 @@
+"""
+Module to calculate various value on an array
+(Quantile, mean, etc..)
+"""
+import numpy as np
+import scipy
+
+def chisquared_uniform(arr, N):
+    """
+    chisquared for uniform distrib
+    """
+    _,counts = np.unique(arr, return_counts=True)
+    observed_freq = counts/N
+    #print(observed_freq)
+    expected_freq = np.full(shape=observed_freq.size,fill_value=1/N)
+    print(observed_freq),print(expected_freq)
+    print(np.sum(expected_freq), np.sum(observed_freq))
+    return scipy.stats.chisquare(observed_freq, expected_freq)
+