You could use TikZ for this.
By supplying the overlay, remember picture options to the tikzpicture, you can access the current page node to position objects relative to the whole page.
The words can be supplied to a foreach loop, separated by commas. The current position in the list is available as \count. To achieve relatively even distribution across the page, I've used xshift and yshift that depend on mod(\count,<value>), which positions the words in a grid. Randomness can be introduced using another set of xshift and yshift, using rand*<length>. The random seed is usually set depending on the system time in minutes, but in order to get reproducible results you should use \pgfmathsetseed{<integer>} at the start of your picture.
Here's an example:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}[overlay,remember picture,shift=(current page.center)]
\pgfmathsetseed{3}
\fill [yellow!20] (current page.south west) rectangle (current page.north east);
\foreach [count=\count] \word in {Environmental Management,Corporate Social Responsibility,Greening,Industrial Ecology,Stakeholder Management,Life-Cycle Management,Pollution Prevention,Sustainable Development,Design for Environment,Green Design,Urban Reinvestment,Brownfield Redevelopment,ISO 14001,Waste Reduction,Closed Loops,Resource Productivity,Sustainable Technology,Radical Transactiveness,Systems Thinking,Corporate Governance} {
\node [
xshift={(mod(\count,3)-1)*(\paperwidth/4)},
yshift={(mod(\count,7)-3)*(\paperwidth/6)},
xshift=rand*4cm,
yshift=rand*2cm,
rotate=rand*35,
opacity=rnd*0.5+0.125,
font=\bfseries\sffamily\large] {\word};
}
\node at (current page.north) [yshift=-8cm,scale=6,font=\sffamily\bfseries,text=orange] {BUZZWORDS!};
\node at (current page.center) [minimum width=7cm, minimum height=5cm,shade,top color=cyan!50!yellow,bottom color=green!50!red] {};
\end{tikzpicture}
\end{document}