사이트 참고는 http://www.gamedevforever.com/114 여기에서 했구요.
유니티에서 모바일 게임 만들 때도 랜덤 알고리즘을 많이 사용하게 됩니다. 예를 들어 아이템을 랜덤으로 표시해야 할 때, 특정 이벤트를 발생시켜야 할 때 등 많이 쓰게 되더라구요.
그래서 좀더 상황이 고르게 나타나도록 할 방법이 없을까 고민하다가 WELL 알고리즘이라는 걸 알게 되었습니다.
참고 사이트 이미지를 비교해보니 “오홍~ WELL 알고리즘이 훨씬 좋군!” 해서 직접 C 코드를 유니티에 맞게 포팅해봤습니다.
근데… 응?

왼쪽이 Unity 에서 제공하는 Random 클래스(UnityEngine.Random) 를 사용하였구요.
오른쪽은 WELL 1024 알고리즘을 C#으로 포팅해서 출력한 이미지입니다. 미리 C#으로 포팅된 코드가 참고 사이트를 돌아다니다 발견했지만 직접 코딩하는 것을 선호하는 저로서는 쌩 무시(…)하고 직접 포팅했습니다. WELL 알고리즘의 초기값은 Random 클래스로 줬습니다.
음….. 그런데 제 눈으로는 도저히 차이점을 모르겠습니다 -ㅅ-;;
내가 잘 못 만든 게 아닌가 해서 C++ 로도 테스트해봤습니다.

코드는 http://www.iro.umontreal.ca/~panneton/WELLRNG.html 사이트에 있는 1024 코드를 그대로 썼습니다. 그래도 잘 모르겠네요… -ㅅ-;
아주 자세히 보면 오른쪽 이미지가 왼쪽보다 빨간색 느낌이 더 많이 난다는 것을 확인이… 아주 어렵지만 느낌상 납니다. 하지만 눈에 확연히 드러날 정도로 보이진 않더군요.
직접 확인하실 수 있도록 unitypackage를 따로 첨부합니다.
[WELLRandomTest.unitypackage]
혹시 Unity 쓰시는 분들 중 시간 되시면 확인해주세요.