1 #ifndef INC_RANDOM_H
2 #define INC_RANDOM_H
3 
4 #include <vector>
5 
6 float ranf();
7 float ranf(float m);
8 int rani(int m);
9 float gaussian();
10 
11 template<class T>
randomSort(std::vector<T> vec)12 std::vector<T> randomSort(std::vector<T> vec)
13 {
14     std::vector<T> randomized;
15 
16     for (int i = vec.size(); i != 0; i--)
17     {
18 	int j = 0;
19 	for ( typename std::vector<T>::iterator it = vec.begin();
20 		it != vec.end();
21 		j++, it++)
22 	    if (rani(i-j) == 0)
23 	    {
24 		randomized.push_back(*it);
25 		vec.erase(it);
26 		break;
27 	    }
28     }
29 
30     return randomized;
31 }
32 
33 #endif /* INC_RANDOM_H */
34