diff --git a/Modules/Hyperspectral/EndmembersExtraction/include/otbVcaImageFilter.txx b/Modules/Hyperspectral/EndmembersExtraction/include/otbVcaImageFilter.txx
index 919e3a6d322dc4d5d9cc2e2cf88d16fc457f8629..014ff8e7eef8cc32e52e8154eb583dbab4142020 100644
--- a/Modules/Hyperspectral/EndmembersExtraction/include/otbVcaImageFilter.txx
+++ b/Modules/Hyperspectral/EndmembersExtraction/include/otbVcaImageFilter.txx
@@ -233,7 +233,7 @@ void VCAImageFilter<TImage>::GenerateData()
   vnl_matrix<PrecisionType> A(m_NumberOfEndmembers, m_NumberOfEndmembers);
   A.fill(0);
   A(m_NumberOfEndmembers - 1, 0) = 1;
-  typename RandomVariateGeneratorType::Pointer randomGen = RandomVariateGeneratorType::New();
+  typename RandomVariateGeneratorType::Pointer randomGen = RandomVariateGeneratorType::GetInstance();
 
   for (unsigned int i = 0; i < m_NumberOfEndmembers; ++i)
     {