<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/faster-shuffling-in-go-with-batching-daniel-lemire-s-blog-ftw3bvuer" -->

---
title: Faster shuffling in Go with batching – Daniel Lemire&#x27;s blog
description: Using batching techniques to generate random numbers can significantly speed up the shuffling of large data sets in Go, achieving performance improvements of...
canonical: https://daily.dev/posts/faster-shuffling-in-go-with-batching-daniel-lemire-s-blog-ftw3bvuer
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Faster shuffling in Go with batching – Daniel Lemire&#x27;s blog | daily.dev
og:description: Using batching techniques to generate random numbers can significantly speed up the shuffling of large data sets in Go, achieving performance improvements of...
og:url: https://daily.dev/posts/faster-shuffling-in-go-with-batching-daniel-lemire-s-blog-ftw3bvuer
og:image: https://api.daily.dev/og/posts/FTw3BVUER.png
og:image:alt: Faster shuffling in Go with batching – Daniel Lemire&#x27;s blog
og:image:width: 1200
og:image:height: 630
og:locale: en
---

[Daniel Lemire](https://daily.dev/sources/lemire)

[Read post](https://api.daily.dev/r/FTw3BVUER)

# [Faster shuffling in Go with batching – Daniel Lemire's blog](https://api.daily.dev/r/FTw3BVUER "Go to post")

Using batching techniques to generate random numbers can significantly speed up the shuffling of large data sets in Go, achieving performance improvements of over 2x compared to the standard rand.Shuffle method. This involves generating multiple random numbers from a single 64-bit value. Code examples and benchmarks are provided to illustrate these enhancements.

[#performance](/tags/performance "Check all #performance posts")[#golang](/tags/golang "Check all #golang posts")[#algorithms](/tags/algorithms "Check all #algorithms posts")

Apr 06, 2025•6m read time•From [lemire.me](https://api.daily.dev/r/FTw3BVUER "lemire.me")

[![Post cover image](https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/59d7c6f25535ee8ac96c6e7073428681?_a=AQAEuj9)](https://api.daily.dev/r/FTw3BVUER "Go to post")

35 Impressions

Comment

Bookmark

Copy

![Placeholder image for anonymous user](https://media.daily.dev/image/upload/s--qsFuKGv_--/t_logo,f_auto/public/noProfile)Share your thoughtsPost

[![Daniel Lemire's image](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/33b93b4f779a45bdaca4a8d3d678fe39)](https://daily.dev/sources/lemire)

[Daniel Lemire](https://daily.dev/sources/lemire "https://daily.dev/sources/lemire")

Authored by Daniel Lemire, a computer science professor and researcher, this blog covers a wide rang... Read more

21 Followers

•

127 Upvotes

#### Would you recommend this post?

Copy link

WhatsApp

Facebook

X

New Squad

Copy linkShare with your friends

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Faster shuffling in Go with batching – Daniel Lemire's blog","url":"https://daily.dev/posts/faster-shuffling-in-go-with-batching-daniel-lemire-s-blog-ftw3bvuer","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/faster-shuffling-in-go-with-batching-daniel-lemire-s-blog-ftw3bvuer"},"datePublished":"2025-04-06T20:32:40.246Z","dateModified":"2025-04-06T20:33:02.379Z","description":"Using batching techniques to generate random numbers can significantly speed up the shuffling of large data sets in Go, achieving performance improvements of...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/59d7c6f25535ee8ac96c6e7073428681?_a=AQAEuj9","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/59d7c6f25535ee8ac96c6e7073428681?_a=AQAEuj9","isAccessibleForFree":true,"articleSection":"Daniel Lemire","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Daniel Lemire","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/33b93b4f779a45bdaca4a8d3d678fe39","url":"https://daily.dev/sources/lemire"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/faster-shuffling-in-go-with-batching-daniel-lemire-s-blog-ftw3bvuer","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"performance,golang,algorithms","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Daniel Lemire","item":"https://daily.dev/sources/lemire"},{"@type":"ListItem","position":3,"name":"Faster shuffling in Go with batching – Daniel Lemire's blog"}]}
```

